+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, чтобы упростить тестирование и контроль изменений, и чтобы этот файл каким-то образом был скомпилирован в исполняемый файл.

Ответы на вопрос(2)

Ваш ответ на вопрос