2013-04-08 4 views
2

Я пишу игру с cocos2d-x на xcode, и у меня возникают проблемы с компиляцией правильной версии Lua для armv7/7s.Lua for ARMv7/ARMv7s

Вот сообщение об ошибке я получаю:

ld: warning: ignoring file 
/Users/seriousgames/Documents/PopulationTest/PopulationTest/libs/lua/liblua.a, file was built for archive which is not the architecture being linked (armv7): /Users/seriousgames/Documents/PopulationTest/PopulationTest/libs/lua/liblua.a 
Undefined symbols for architecture armv7: 
    "_luaL_newstate", referenced from: 
     Behavior::onTerminate(Status) in Behavior.o 
    "_luaL_openlibs", referenced from: 
     Behavior::onTerminate(Status) in Behavior.o 
ld: symbol(s) not found for architecture armv7 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

LUA делает работу, если я выбираю для компиляции для MacOS (не IOS).

Edit: я в конечном итоге использую старую сборку Lua, версии 5.1.4, и следовал инструкциям здесь: http://blog.stokedsoftware.com/blog/2012/02/05/scripting-ios-games-with-lua-part-ii/ Этого метод не требует lualib.a внешней библиотеки, а Xcode создает источник Lua в проект.

Примечание: хотя его код находится в Objective C, я обнаружил, что его метод действительно работает для cocos2d-x.

Он специально исключает файлы lua.c и luac.c из сборки. Я решил не делать этого, но я прокомментировал функции int main(), потому что они столкнутся с ними в main.m. Я отвечу на этот вопрос немного, но мне все еще интересно узнать, как создать liblua.a для arm7/7s.

+4

Похоже, вы скомпилировали 'liblua.a' для OS X, а не iOS. –

+0

Эта ошибка - это просто сбой связи. Из этого трудно вывести из этого, почему библиотека не была скомпилирована для правильной архитектуры. Рассмотрите возможность вставки заголовка архива, полученного из 'otool -a' – Will

+0

Кажется, что ваш код является C++, но вы не сказали компилятору, что библиотека Lua является библиотекой C. Включите lua.hpp вместо lua.h – lhf

ответ

1

См редактирование:

Edit: Я в конечном итоге, используя старую сборку Lua, версии 5.1.4, и следовал инструкциям: http://blog.stokedsoftware.com/blog/2012/02/05/scripting-ios-games-with-lua-part-ii/ Этот метод не требует lualib.a внешней библиотеки, а Xcode строит источник lua ​​в проекте.

Примечание: хотя его код находится в Objective C, я обнаружил, что его метод действительно работает для cocos2d-x.

Он специально исключает файлы lua.c и luac.c из сборки. Я решил не делать этого, но я прокомментировал функции int main(), потому что они столкнутся с ними в main.m. Я отвечу на этот вопрос немного, но мне все еще интересно узнать, как создать liblua.a для arm7/7s.

Смежные вопросы