Луа на айфоне? - PullRequest
       25

Луа на айфоне?

15 голосов
/ 02 июня 2009

Я пытаюсь использовать Lua на iPhone. В Mac OS X в обычном (не iOS) приложении Какао я использовал следующий код:

lua_State* l;
l = lua_open();
luaL_openlibs(l);
luaL_loadstring(l, "print(\"Hi from Lua\");");
lua_pcall(l, 0, 0, 0);

Я скачал Lua 5.1.4 с lua.org/ftp и скомпилировал его для Mac OS X. В проекте Xcode я использовал «Add Existing Framework» для добавления liblua.a и «Add Existing Files» для добавления каталога include.

Это работает, как и ожидалось, и печатает строку: «Привет, Луа». Когда я пытаюсь сделать то же самое в проекте iOS, он выдает ошибки:

"_luaL_newstate", referenced from:
_main in main.o
more of the same thing...
symbol(s) not found
collect2: ld returned 1 exit status

Похоже, что файл .a не связан с приложением iPhone. Кто-нибудь знает, как заставить это работать?

(Кстати, мне все равно, что Apple может не принять мое приложение, если в нем есть Lua.)

Ответы [ 3 ]

19 голосов
/ 02 июня 2009

Вам нужно будет скомпилировать Lua .a для ARM, а не Intel. Если библиотека Lua использует autoconf, вы можете использовать мой любимый iphone / autoconf builder: build_for_iphoneos. Если это не autoconf, то вы можете использовать этот скрипт, чтобы получить представление о том, как его атаковать. Иногда вы можете просто создать проект статической библиотеки Xcode, выгрузить в него все файлы и нажать «build». Если сборка достаточно проста, она сделает большую часть работы за вас.

Я знаю, что это не имеет значения для вашего использования, но инструменты на основе Lua обычно можно приобрести в магазине приложений. Вы просто не можете загрузить произвольный код во время выполнения и интерпретировать его.

14 голосов
/ 05 октября 2009

Возможно, вы захотите проверить iPhone Wax. Это мост lua / iPhone, который позволяет вам писать нативные приложения для iPhone на чистом lua! Вот хороший хороший учебник об этом.

4 голосов
/ 30 марта 2012

Если вы хотите написать код Lua для iOS, немедленно проверьте MOAI: http://getmoai.com/

Абсолютно приятная среда для разработки игр на iOS и Android, а также на Windows и OSX. Не только это, но и дает довольно хорошее представление о том, как правильно реализовать среду хостинга на основе Lua-VM для межплатформенного скриптинга: из MOAI вы можете многое узнать об этом. До сих пор я сделал 4 тайтла с MOAI, и в ближайшее время не остановлюсь .. MOAI абсолютно надрал задницу!

Также обратите внимание на LOAD81, что аналогично усилию, хотя с SDL в качестве целевой среды: http://github.com/antirez/load81

(Я внес небольшой вклад в проект LOAD81, специально придав ему особенности, представляющие интерес / ценность для сообщества OpenPandora. MOAI более коммерческий, LOAD81 более хобби…)

Для тех, кто пытается изучить Lua и различные методы интеграции виртуальной машины Lua в проект для нескольких целей платформы, и MOAI, и LOAD81 могут предоставить много полезной информации и подсказок о том, как правильно продолжить.

...