编译assimp for android
参看/contrib/android-cmake/android.toolchain.cmake 及scripts/android_crosscompile/make_android.bat
cmake -DCMAKE_TOOLCHAIN_FILE=../contrib/android-cmake/android.toolchain.cmake -DANDROID_NATIVE_API_LEVEL=android-21 -DANDROID_TOOLCHAIN_NAME=aarch64-linux-android-4.9 -DANDROID_ABI=arm64-v8a -DCMAKE_MAKE_PROGRAM=/opt/arch64-linux-android-4.9-r15c/aarch64-linux-android-4.9/bin/make -DCMAKE_INSTALL_PREFIX=/opt/assimp-4.1.0_android ..
(参看http://www.myandroidonline.com/2015/06/09/compile-assimp-open-source-library-for-android/ https://blog.csdn.net/fyfcauc/article/details/72627996)
错误:CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
解决方法:是由于在编译android版本时,必须将ndk及DCMAKE_MAKE_PROGRAM加上。
错误:/home/wangyingjun/Downloads/assimp-4.1.0/contrib/unzip/crypt.h:48:51: error: unknown type name 'z_crc_t'
static int update_keys(unsigned long* pkeys,const z_crc_t* pcrc_32_tab,int c)
^
/home/wangyingjun/Downloads/assimp-4.1.0/contrib/unzip/crypt.h:65:69: error: unknown type name 'z_crc_t'
static void init_keys(const char* passwd,unsigned long* pkeys,const z_crc_t* pcrc_32_tab)
^
/home/wangyingjun/Downloads/assimp-4.1.0/contrib/unzip/unzip.c: In function 'unzOpenCurrentFile3':
/home/wangyingjun/Downloads/assimp-4.1.0/contrib/unzip/unzip.c:1183:24: warning: assignment from incompatible pointer type
s->pcrc_32_tab = get_crc_table();
^
code/CMakeFiles/assimp.dir/build.make:2428: recipe for target 'code/CMakeFiles/assimp.dir/__/contrib/unzip/unzip.c.o' failed
解决方法:cmake -DCMAKE_TOOLCHAIN_FILE=../contrib/android-cmake/android.toolchain.cmake -DANDROID_NATIVE_API_LEVEL=android-22 -DANDROID_TOOLCHAIN_NAME=aarch64-linux-android-4.9 -DANDROID_ABI=arm64-v8a -DCMAKE_MAKE_PROGRAM=/opt/arch64-linux-android-4.9-r15c/aarch64-linux-android-4.9/bin/make -DCMAKE_INSTALL_PREFIX=/opt/assimp-4.1.0_android -DASSIMP_BUILD_ZLIB=ON ..
错误:/opt/android-ndk-r15c/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: cannot find -lpthread
collect2: error: ld returned 1 exit status
test/CMakeFiles/unit.dir/build.make:1271: recipe for target 'test/unit' failed
make[2]: *** [test/unit] Error 1
CMakeFiles/Makefile2:786: recipe for target 'test/CMakeFiles/unit.dir/all' failed
make[1]: *** [test/CMakeFiles/unit.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2
解决方法:-DASSIMP_BUILD_TESTS=OFF