+1 за очень информативное решение. Я оставлю это в своем заднем кармане на случай, если мне понадобится что-то, не относящееся к Lua, и где переносимость менее важна.
избалован в мире оболочки, где я могу сделать:
./lua <<EOF
> x="hello world"
> print (x)
> EOF
hello world
Теперь я пытаюсь включить скрипт Lua в приложение на C, которое, как я ожидаю, будет расти со временем. Я начал с простого:
const char *lua_script="x=\"hello world\"\n"
"print(x)\n";
luaL_loadstring(L, lua_script);
lua_pcall(L, 0, 0, 0);
Но это имеет несколько недостатков. Прежде всего, я должен избежать перевода строки и цитат. Но сейчас я бьюstring length ‘1234’ is greater than the length ‘509’ ISO C90 compilers are required to support
предупреждение при компиляции с gcc, и я хотел бы сохранить эту программу не только автономной, но и переносимой на другие компиляторы.
Каков наилучший способ включить большой скрипт Lua в программу на C, а не отправлять конечному пользователю в виде отдельного файла? В идеале я хотел бы переместить сценарий в отдельный файл * .lua, чтобы упростить тестирование и контроль изменений, и чтобы этот файл каким-то образом был скомпилирован в исполняемый файл.