我想使用ASSIMP库 http://assimp.sourceforge.net 在iOS项目中。不幸的是,我对makefile和那些东西都不是很有经验,所以我需要一些帮助。
我已经下载了源代码,我首先尝试使用make构建(在代码子文件夹中)
在我添加的makefile中 INCLUDEFLAGS = -I/Lib
因为我的提升头文件在/ 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
这是否意味着,不可能为ARM体系结构编译ASSIMP库?