ndk版本必须限定在(r9d~r12):
使用ndk低版本编译(低于r9d)时:syntax error: world unexpected (expecting “)”)
高版本编译(高于r12),因为其交叉编译环境使用clang而不是使用gcc++(被替代了)的缘故,打包android时会报错。
目前编译步骤(仍然会有crash的问题,且log无法追查到libparaenginemobile.so,疑是数组越界):
1.下载对应版本的sdk,ndk,使用andorid官网的sdk-manager工具下载专用cmake,下载android-cmake
2.创建交叉编译环境,例:
sh make-standalone-toolchain.sh –-platform=android-19 –-ndk-dir=$NDK_PATH –-install-dir=//mnt/c/develope/Android/sdk/android-toolchain-r9d-4.8 –-toolchain=arm-linux-androideabi-4.8
3.设置各种环境,例:
NDK配置:
export NDK_PATH=/mnt/c/develope/android-ndk-r9d-linux-x86_64
export NDK_ROOT_HOME=/mnt/c/develope/android-ndk-r9d-linux-x86_64
export ANDROID_NDK=/mnt/c/develope/android-ndk-r9d-linux-x86_64
设置交叉编译环境:
export ANDROID_NDK_TOOLCHAIN=/mnt/c/develope/Android/sdk/android-toolchain-r9d-4.8
设置android-cmake:
export ANDTOOLCHAIN=/mnt/c/develope/Android/android-cmake/android.toolchain.cmake
export PATH=$PATH:/mnt/c/develope/Android/sdk/android-toolchain-r9d-4.8/bin
设置sdk:
export PATH=$PATH:/mnt/c/develope/Android/sdk/tools
export PATH=$PATH:/mnt/c/develope/Android/sdk/platform-tools
4.在assimp文件夹下建立一个文件夹buildAndroid,使用androidsdk提供的cmake建立工程,例:
/mnt/c/develope/Android/sdk/cmake/3.6.4111459/bin/cmake -DCMAKE_TOOLCHAIN_FILE=$ANDTOOLCHAIN -DCMAKE_INSTALL_PREFIX=/assimp-3.11 -DANDROID_ABI=armeabi -BUILD_SHARED_LIBS=TRUE DANDROID_TOOLCHAIN_NAME=arm-linux-androideabi-4.8 -DANDROID_NATIVE_API_LEVEL=android-19 -DANDROID_FORCE_ARM_BUILD=TRUE -DANDROID_STL=gnustl_static -DASSIMP_BUILD_OBJ_IMPORTER=TRUE -DASSIMP_BUILD_FBX_IMPORTER=TRUE ..
5.执行make文件,即生成assimp.a
参考文章:
http://blog.csdn.net/fyfcauc/article/details/72627996
http://www.myandroidonline.com/2015/06/09/compile-assimp-open-source-library-for-android/
ndk版本必须限定在(r9d~r12):
使用ndk低版本编译(低于r9d)时:syntax error: world unexpected (expecting “)”)
高版本编译(高于r12),因为其交叉编译环境使用clang而不是使用gcc++(被替代了)的缘故,打包android时会报错。
目前编译步骤(仍然会有crash的问题,且log无法追查到libparaenginemobile.so,疑是数组越界):
1.下载对应版本的sdk,ndk,使用andorid官网的sdk-manager工具下载专用cmake,下载android-cmake
2.创建交叉编译环境,例:
sh make-standalone-toolchain.sh –-platform=android-19 –-ndk-dir=$NDK_PATH –-install-dir=//mnt/c/develope/Android/sdk/android-toolchain-r9d-4.8 –-toolchain=arm-linux-androideabi-4.8
3.设置各种环境,例:
NDK配置:
export NDK_PATH=/mnt/c/develope/android-ndk-r9d-linux-x86_64
export NDK_ROOT_HOME=/mnt/c/develope/android-ndk-r9d-linux-x86_64
export ANDROID_NDK=/mnt/c/develope/android-ndk-r9d-linux-x86_64
设置交叉编译环境:
export ANDROID_NDK_TOOLCHAIN=/mnt/c/develope/Android/sdk/android-toolchain-r9d-4.8
设置android-cmake:
export ANDTOOLCHAIN=/mnt/c/develope/Android/android-cmake/android.toolchain.cmake
export PATH=$PATH:/mnt/c/develope/Android/sdk/android-toolchain-r9d-4.8/bin
设置sdk:
export PATH=$PATH:/mnt/c/develope/Android/sdk/tools
export PATH=$PATH:/mnt/c/develope/Android/sdk/platform-tools
4.在assimp文件夹下建立一个文件夹buildAndroid,使用androidsdk提供的cmake建立工程,例:
/mnt/c/develope/Android/sdk/cmake/3.6.4111459/bin/cmake -DCMAKE_TOOLCHAIN_FILE=$ANDTOOLCHAIN -DCMAKE_INSTALL_PREFIX=/assimp-3.11 -DANDROID_ABI=armeabi -BUILD_SHARED_LIBS=TRUE DANDROID_TOOLCHAIN_NAME=arm-linux-androideabi-4.8 -DANDROID_NATIVE_API_LEVEL=android-19 -DANDROID_FORCE_ARM_BUILD=TRUE -DANDROID_STL=gnustl_static -DASSIMP_BUILD_OBJ_IMPORTER=TRUE -DASSIMP_BUILD_FBX_IMPORTER=TRUE ..
5.执行make文件,即生成assimp.a
参考文章:
http://blog.csdn.net/fyfcauc/article/details/72627996
http://www.myandroidonline.com/2015/06/09/compile-assimp-open-source-library-for-android/