Всем привет, ребята помоги собрать последнего Огра на iOS.
Скачал сырцы, депенденсы. Все это чудо собрал в Cmake. Интересный факт, (работаю в Mac OS соответственно, среда - Xcode 4.2 + iOS 5.0) Cmake под iOS собирает только из терминала, но не в этом суть.
После Cmake получаю проект для Xcode, собираю его в ALL_BUILDS/iOS Device. И вот тут начинаются проблемы, то есть если собрать ОГРА в ALL_BUILDS/iOS Device, то программы наисаные на ОГРЕ будут работать только на ДЕВАЙСЕ, в симуляторе не проходят Линковку.
А если собрать в ALL_BUILDS/Simulator, то программы будут работать только на СИМУЛЯТОРЕ, а на девайсе не будут линковаться.
Tсли собрать для Device, то при попытке запустить приложение на симуляторе получаю вот такое:
ld: warning: ignoring file /Users/ENGine/ogre_src_v1-8-0RC1/lib/Debug/libOgreMainStatic.a, file was built for archive which is not the architecture being linked (i386) ld: warning: ignoring file /Users/ENGine/ogre_src_v1-8-0RC1/lib/Debug/libRenderSystem_GLES2Static.a, file was built for archive which is not the architecture being linked (i386) ld: warning: ignoring file /Users/ENGine/ogre_src_v1-8-0RC1/lib/Debug/libOgreRTShaderSystemStatic.a, file was built for archive which is not the architecture being linked (i386) Undefined symbols for architecture i386:
Кто - нибудь сталкивался с такой проблемой?
lipo вам в помощь - man lipo
tikhomirov, в двух словах не подскажете, что это такое? впервые такое слышу.
OS X поддерживает fat binaries - бинаркники, в которых содержится кода сразу для нескольких архитектур. Вы собираете библиотеку для симулятора и для девайса отдельно, потом с помошью lipo создаете универсальную библиотеку, которую и будете использовать. Документацию и примеры использования смотрите в мане для lipo.
Огромное спасибо, наконец - то собрал ОГРа, как нужно. Lipo сотворил чудо ;)
lipo dlibOgreMainStatic.a -arch i386 slibOgreMainStatic.a -create -output libOgreMainStatic.a
Тема в архиве.