Windows10环境下Android studio NDK编译assimp

1.下载Assimp源码https://github.com/assimp/assimp

2.安装Python2.7并配置环境变量

3.确保电脑有Android SDK和NDK

4.编写编译脚本,保存在assimp源码同级目录下(注,需要根据实际安装路径修改

4.1 make_standalong_toolchain_arm64.bat

python D:/Android/android-ndk-r13b/build/tools/make_standalone_toolchain.py --arch=arm64 --stl=libc++ --api=21 --install-dir=android-toolchain-21-llvm-arm64v8a

4.2 build_assimp_arm64.bat

@echo off
cls

REM *NOTE* Change these based on 
SET ASSIMP_DIR=assimp
SET OUTPUT_DIR=assimp-build-arm64v8a
SET ANDROID_PATH=D:\Android\Sdk
SET NDK_PATH=D:\Android\android-ndk-r13b
SET NDK_TOOLCHAIN=%~dp0android-toolchain-24-llvm-arm64v8a
SET CMAKE_TOOLCHAIN=%NDK_PATH%\build\cmake\android.toolchain.cmake
SET CMAKE_PATH=%ANDROID_PATH%\cmake\3.6.4111459

REM *NOTE* Careful if you don't want rm -rf, I use it for testing purposes.
del %OUTPUT_DIR%
mkdir %OUTPUT_DIR%

REM pushd doesn't seem to work ):<
cd %OUTPUT_DIR%

if not defined ORIGPATH set ORIGPATH=%PATH%
SET PATH=%CMAKE_PATH%\bin;%ANDROID_PATH%\tools;%ANDROID_PATH%\platform-tools;%ORIGPATH%

cmake ^
      -GNinja ^
      -DCMAKE_TOOLCHAIN_FILE=%CMAKE_TOOLCHAIN% ^
      -DASSIMP_ANDROID_JNIIOSYSTEM=ON ^
      -DANDROID_NDK=%NDK_PATH% ^
      -DCMAKE_MAKE_PROGRAM=%CMAKE_PATH%\bin\ninja.exe ^
      -DCMAKE_BUILD_TYPE=Release ^
      -DANDROID_ABI="arm64-v8a" ^
      -DANDROID_NATIVE_API_LEVEL=21 ^
      -DANDROID_FORCE_ARM_BUILD=TRUE ^
      -DCMAKE_INSTALL_PREFIX=install ^
      -DANDROID_STL=gnustl_static ^
	  -DCMAKE_CXX_FLAGS="-Wno-c++11-narrowing -frtti -fexceptions -g -O2" ^
      -DANDROID_TOOLCHAIN=clang ^
      -DBUILD_SHARED_LIBS=OFF ^
      -DASSIMP_BUILD_TESTS=OFF ^

      ../%ASSIMP_DIR%

cmake --build .

cd ..

pause

以上为arm64架构平台的.a库,如果需要编译.so则需要将脚本中的-DBUILD_SHARED_LIBS=OFF 删除即可,编译相关库时需要主要架构和 -DANDROID_STL=gnustl_static,避免所生成的库跟Android studio Android.mk配置的STL一直

5.上面是以arm64-v8a架构为例,对于其他六种架构(armeabi,armeabi-v7a,mips,mips64,x86,x86_64),需要修改–arch参数,该参数选值见下表:


工具链
mips64 编译器–arch=mips64
mips GCC 4.8 编译器–arch=mips
x86 GCC 4.8 编译器–arch=x86
x86_64 GCC 4.8 编译器–arch=x86_64
arm GCC 4.8 编译器–arch=arm

 6.分别运行make_standalong_toolchain_arm64.bat和build_assimp_arm64.bat

7.直接将.a文件和头文件移植到安卓工程中,编写Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_CFLAGS += -std=c++11
LOCAL_MODULE := assimp_static
LOCAL_MODULE_FILENAME := assimp
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libassimp.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../include
include $(PREBUILT_STATIC_LIBRARY)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值