Я хочу использовать библиотеку ASSIMP http://assimp.sourceforge.net в проекте iOS. К сожалению, я не очень разбираюсь в make-файлах и тому подобном, поэтому мне нужна помощь.
Я скачал исходники и сначала попытался собрать с помощью make (в подпапке кода)
В make-файл я добавил INCLUDEFLAGS = -I/Lib
, потому что мои заголовочные файлы boost находятся в / Lib / boost
Выполнение make static
завершается успешно с некоторыми предупреждениями. Создана статическая библиотека (.a).
Затем я попытался добавить .a-файл в свой xcode-проект и указал папку assimp-header в качестве дополнительного каталога include (Другие пути поиска). Ошибка связи с сообщением о том, что библиотека имеет неправильную архитектуру (для симулятора необходим i386)
file libassimp.a
выводит: «libassimp.a: текущая библиотека архивных случайных файлов»
Как мне собрать библиотеку для архитектуры i386 и для arm6 или arm7, что мне нужно на устройстве iOS?
Можно ли использовать только boost-заголовки или лучше / необходимо создавать boost как библиотеку? В настоящее время я использую только заголовки boost, что должно быть хорошо, так как boost - это библиотека только заголовков?!
Существует также cmake - makefile (CMakeLists.txt). cmake - рекомендуемый способ создания библиотеки, но у меня нет опыта работы с cmake.
Или еще одна мысль: возможно ли построить библиотеку через xcode?
Конечным результатом должна стать библиотека для архитектуры i386, arm6 и arm7.
Что мне делать? И как?
Edit:
Я только что обнаружил, что в файле есть следующие проверки препроцессора aiDefines.h
:
#if defined(_MSC_VER)
// See http://msdn.microsoft.com/en-us/library/b0084kay.
# if defined(_M_IX86)
# define ASSIMP_BUILD_X86_32BIT_ARCHITECTURE
# elif defined(_M_X64)
# define ASSIMP_BUILD_X86_64BIT_ARCHITECTURE
# elif defined(_M_IA64)
# define ASSIMP_BUILD_IA_64BIT_ARCHITECTURE
# else
# error unknown architecture
# endif
#elif defined(__GNUC__)
// See http://gcc.gnu.org/onlinedocs/cpp/Predefined-Macros.html.
# if defined(__x86_32__) || defined(__i386__)
# define ASSIMP_BUILD_X86_32BIT_ARCHITECTURE
# elif defined(__x86_64__)
# define ASSIMP_BUILD_X86_64BIT_ARCHITECTURE
# elif defined(__ppc__)
# define ASSIMP_BUILD_PPC_32BIT_ARCHITECTURE
# else
# error unknown architecture
# endif
#else
# error unknown compiler
#endif
Означает ли это, что невозможно скомпилировать библиотеку ASSIMP для архитектуры ARM?