Я могу заставить его работать, используя следующий код благодаря @Henri_Menke.
/* set the current working directory */
const char *currentDir = "directory/to/script";
chdir(currentDir);
/* init lua and run script */
lua_State *L = luaL_newstate();
luaL_openlibs(L);
lua_settop(L, 0);
const char *script = "require('test')";
const int ret = luaL_loadstring(L, script);
if (ret || lua_pcall(L, 0, LUA_MULTRET, 0))
{
std::cout << "Error: " << lua_tostring(L, -1) << std::endl;
}
lua_close(L);
Fixer - отличный вариант, бесплатная регистрация ограничивает вас 1000 звонками в месяц и свежими данными каждый час. Когда вы зарегистрируетесь, вам будет предоставлен ключ доступа, который вы затем сможете использовать в таких запросах:
https://data.fixer.io/api/latest?access_key=MY_ACCESS_KEY
Ответ будет в следующем формате:
{
"success": true,
"timestamp": 1547937308,
"base": "EUR",
"date": "2019-01-19",
"rates": {
"AED": 4.177162,
"AFN": 85.692162,
...
"CAD": 1.507594,
...
"USD": 1.137249,
...
}
}
Сейчас у вас есть обменный курс для CAD / EUR (EUR является базовой валютой фиксатора) и USD / EUR. Сцепив эти ставки, вы можете получить желаемый курс CAD / USD.
usd_cad_rate = eur_cad_rate / eur_usd_rate
usd_cad_rate = 1.507594 / 1.137249 = 1.325649