如何使用boost-library为iOS(设备和模拟器)构建ASSIMP库?

j00*_*0hi 11 boost makefile cmake ios

我想在iOS项目中使用ASSIMP库http://assimp.sourceforge.net.不幸的是,我对makefile和那些东西不是很有经验,所以我需要一些帮助.

我已经下载了源代码,首先我尝试用make构建(在代码子文件夹中)在makefile中我添加了INCLUDEFLAGS = -I/Lib因为我的boost头文件在/ Lib/boost中执行make static成功但有一些警告.生成静态库(.a).

然后我尝试将.a文件添加到我的xcode项目中,并将assimp-header文件夹指定为附加的include目录(Other Search Paths).链接失败的消息是库没有正确的架构(模拟器需要i386)

file libassimp.a 输出:"libassimp.a:当前ar存档随机库"

我如何为i386架构和arm6或arm7构建库,无论我在iOS设备上需要什么?

是否可以仅使用boost-headers,还是更好/有必要将boost构建为库?目前我只使用boost头,这应该没问题,因为boost是一个只有头的库?!

还有一个cmake - makefile(CMakeLists.txt).cmake是建立图书馆的推荐方式,但我对cmake没有任何经验.

或者另一个想法:是否可以通过xcode构建库?最终结果应该是i386,arm6和arm7架构的库.

我该怎么办?如何?


编辑:

我刚刚发现文件中有以下预处理程序检查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
Run Code Online (Sandbox Code Playgroud)

这是否意味着,不可能为ARM体系结构编译ASSIMP库?

kli*_*bot 5

我个人不做任何iOS开发,但我知道其他人已经成功使用Xcode为他们的iDevices编译了Assimp.Xcode 3项目应该包含在发行版中,但我不知道您是否可以在不进行进一步修改的情况下使用它.

架构预处理器定义目前仅用于记录输出(in code/Importer.cpp),并且同时已将对ARM的支持添加到trunk(准确地说是r919).