Cross compiler generated version of Android under the Mac environment Assimp.so

Disclaimer: This article is a blogger original article, shall not be reproduced without the bloggers allowed. https://blog.csdn.net/sky_person/article/details/89009063

Assimp Address: https://github.com/assimp/assimp

To compile Assimp of Android so library, Android SDK, NDK, Gradle (also can be fitted) The first is the need ready.

Configure the Android SDK and NDK environment variables, as follows:

ANDROID_HOME=/Users/Test/AndroidRes/sdk
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools

GRADLE_HOME=/Users/Test/AndroidRes/gradle-4.4
export GRADLE_HOME
export PATH=$PATH:$GRADLE_HOME/bin

export ANDROID_NDK_PATH=/Users/Test/AndroidRes/sdk/ndk-bundle
export ANDROID_SDK_PATH=/Users/Test/AndroidRes/sdk
export CMAKE_TOOLCHAIN=/Users/Test/AndroidRes/sdk/ndk-bundle/build/cmake/android.toolchain.cmake
NDK_PATH=/Users/Test/AndroidRes/sdk/ndk-bundle
export PATH=$PATH:NDK_PATH

Fitted cmake, the following instructions:

brew install cmake

Installed zlib, the following instructions:

brew install zlib

 

We began to seriously:

Corresponding directory under 1.NDK have make-standalone-toolchain.sh documents confirming NDK version nothing wrong.

ANDROID_NDK $ / Build / Tools / make-standalone-toolchain.sh
2. Run the following script to generate toolchain

export NDK_PATH=/Users/hi/Library/Android/sdk/ndk-bundle
sh make-standalone-toolchain.sh –platform=android-8 –ndk-dir=$NDK_PATH –install-dir=/Users/hi/Library/Android/sdk/android-toolchain –toolchain=arm-linux-androideabi-4.4.3

Instruction execution success will be the following tips:

Package installed to /var/folders/9_/q2k248tj62x7734zchpn6btm0000gn/T/.

This directory to find named arm-linux-androideabi.tar.bz2 compressed file, unzip it, and put * / Users / hi / Library / Android / sdk / android-toolchain under

3. Environment variables add the following configuration:

#下面内容是根据上面描述的整理出的toolchain对应的位置
export ANDROID_NDK_TOOLCHAIN=/Users/Test/AndroidRes/sdk/android-toolchain/arm-linux-androideabi
export PATH=$PATH:/Users/Test/AndroidRes/sdk/android-toolchain/arm-linux-androideabi/bin

4. Switch to the project directory Assimp

cd xxx/assimp // 下载assimp,然后解压,进入assimp根目录
mkdir buildAndroid // 创建文件夹
cd buildAndroid // 进入这个文件夹

Execute instructions to generate the makefile

cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN -DCMAKE_INSTALL_PREFIX=/assimp -DANDROID_ABI=armeabi-v7a -DANDROID_NATIVE_API_LEVEL=android-14 -DANDROID_FORCE_ARM_BUILD=TRUE -DANDROID_STL=c++_shared -DASSIMP_BUILD_OBJ_IMPORTER=TRUE -DASSIMP_BUILD_FBX_IMPORTER=TRUE -DANDROID_NDK=$ANDROID_NDK_PATH -DCMAKE_BUILD_TYPE=Release -DANDROID_FORCE_ARM_BUILD=TRUE -DCMAKE_CXX_FLAGS=-Wno-c++11-narrowing -DANDROID_TOOLCHAIN=clang -DASSIMP_BUILD_TESTS=OFF -DASSIMP_NO_EXPORT=TRUE -DASSIMP_BUILD_ASSIMP_TOOLS=FALSE -DASSIMP_BUILD_SAMPLES=FALSE -DASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT=FALSE ..

Parameter Description:

-DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN 指向上面生成的toolchain
-DCMAKE_INSTALL_PREFIX=/assimp 最终生成的.so文件的名称
-DANDROID_ABI=armeabi-v7a 应用程序二进制接口类型,详见[ABI Management](https://developer.android.com/ndk/guides/abis)
-DANDROID_NATIVE_API_LEVEL=android-14 api版本,设成这个就行
-DANDROID_FORCE_ARM_BUILD=TRUE 强制编译arm架构
-DANDROID_STL=c++_shared c++类型
-DASSIMP_BUILD_OBJ_IMPORTER=TRUE 支持OBJ格式的3D模型文件导入
-DASSIMP_BUILD_FBX_IMPORTER=TRUE 支持FBX格式的3D模型文件导入
-DASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT=FALSE assimp默认支持很多种3D模型格式,这里只指定常用的一两种格式即可,减小.so包的大小
-DASSIMP_BUILD_TESTS=OFF 这个要关掉,不然make时会有一些奇怪的错误
-DASSIMP_NO_EXPORT=TRUE 只需要解析3D模型,不需要生成3D模型

5. and then the remaining last step generates so, the following command:

make -j8 //j8是多线程编译,j后面的数字越大编译越快,当然了,前提是你机器有那么多处理器哈。

6. If the above instructions without error, so it can generate a. position so assimp / buildAndroid / code directory.

 

 

Reference links:

https://juejin.im/post/5b0abe9f51882538bf5a68ad

http://zhixinliu.com/2016/02/01/2016-02-01-cmake-cross-compile/

http://www.anandmuralidhar.com/blog/android/assimp/

https://www.jianshu.com/p/0284c429362c

Guess you like

Origin blog.csdn.net/sky_person/article/details/89009063