Assimp 裁剪编译 Android 库
通过编译配置选项裁剪编译,只编自己需要的部分,如本文:Exporter 全不需要,Importer 只编进来 Obj 和 FBX 格式。
配置选项说明:
- -DBUILD_SHARED_LIBS=OFF 关掉动态库,即编译静态库
- -DASSIMP_NO_EXPORT=ON 关闭所有的 Exporter(不需要导出模型)
- -DASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT=FALSE 关闭编译所有的默认 Importer,即不全部编译
- -DASSIMP_BUILD_OBJ_IMPORTER=TRUE 编译 Obj 格式的 Importer
- -DASSIMP_BUILD_FBX_IMPORTER=TRUE 编译 FBX 格式的 Importer
编译截图:
编译脚本如下:
#!/bin/shMY_NDK="/Users/AlanWang4523/AndroidDev/android-ndk-r16b"
MY_SDK="/Users/AlanWang4523/AndroidDev/sdk"
MY_CMAKE="${MY_SDK}/cmake/3.10.2.4988404/bin/cmake"OUTPUT_LIBS="./build/libs/android"function build_with_armeabi() {ARME_ABI=$1API_LEVEL=$2PLATFORM="android-${API_LEVEL}"echo ${ARME_ABI}echo ${PLATFORM}BUILD_DIR="./build/android/${ARME_ABI}"PRE_EXE_DIR=$(pwd)echo ${PRE_EXE_DIR}# 使用 android 工具链生成 makefile${MY_CMAKE} \-H"./" \-B"${BUILD_DIR}" \-DBUILD_SHARED_LIBS=OFF \-DASSIMP_BUILD_ASSIMP_TOOLS=OFF \-DASSIMP_BUILD_TESTS=OFF \-DASSIMP_INSTALL=OFF \-DASSIMP_INJECT_DEBUG_POSTFIX=OFF \-DASSIMP_NO_EXPORT=ON \-DASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT=FALSE \-DASSIMP_BUILD_OBJ_IMPORTER=TRUE \-DASSIMP_BUILD_FBX_IMPORTER=TRUE \-DANDROID_ABI="${ARME_ABI}" \-DANDROID_NDK="${MY_NDK}" \-DCMAKE_BUILD_TYPE="Release" \-DCMAKE_LIBRARY_OUTPUT_DIRECTORY="./build/android/libs/${ARME_ABI}" \-DCMAKE_BUILD_TYPE="Release" \-DCMAKE_TOOLCHAIN_FILE="${MY_NDK}/build/cmake/android.toolchain.cmake" \-DANDROID_PLATFORM=${PLATFORM} \-DANDROID_TOOLCHAIN="clang" \-DCMAKE_C_FLAGS="-fpic -fexceptions -frtti" \-DCMAKE_CXX_FLAGS="-fpic -fexceptions -frtti" \-DANDROID_STL="c++_static" \# 生成目标文件cd ${BUILD_DIR}make# 将目标文件移至指定目录cd ${PRE_EXE_DIR}mkdir -p ${OUTPUT_LIBS}/${ARME_ABI}/cp ${BUILD_DIR}/lib/* ${OUTPUT_LIBS}/${ARME_ABI}/rm -r ./build/android
}build_with_armeabi armeabi-v7a 16
build_with_armeabi arm64-v8a 21
Assimp 裁剪编译 Android 库相关推荐
- golang编译android库
文章目录 1. go build 环境 方法 库源代码 编译命令 2. xgo 环境 方法 库源代码 3. AndroidNDK 环境 方法 库源代码 编译命令 4. gomobile 环境 方式 库 ...
- QtAV编译Android库出现的libavresample or libswresample is required problem问题解决
在.qmake.conf文件中添加CONFIG += no_config_tests,没有解决问题. 于是把QtAV.pro文件中的下面几行注释掉,编译通过. #runConfigTests() #! ...
- cmake 编译 linux 库,使用CMake编译跨平台静态库
在开始介绍如何使用CMake编译跨平台的静态库以前,先讲讲我在没有使用CMake以前所趟过的坑.由于不少开源的程序,好比png,都是自带编译脚本的.咱们可使用下列脚原本进行编译:linux . / c ...
- android 内核裁剪概述,Android内核的编译与裁剪
概述 如果我们仅仅对Android内核感兴趣,我们可以选择合适的Android内核下载并编译. 可供选择的内核源码有很多版本: $ git clone https://android.googleso ...
- 【Android NDK 开发】NDK 交叉编译 ( NDK 函数库目录 | Linux 交叉编译环境搭建 | 指定头文件目录 | 指定函数库目录 | 编译 Android 命令行可执行文件 )
文章目录 I . NDK platforms 目录下的 函数库 II . Ubuntu 配置 NDK 交叉编译环境 III . 同时指定编译的头文件和库文件 IV . 指定编译的头文件 V . 指定编 ...
- Android系统编译so库提示error undefined reference to '__android_log_print问题的解决
在系统源代码的hardware/qcom下增加psam文件夹,编译源代码要生成libpsam.so库,Android.mk内容 LOCAL_PATH := $(call my-dir) include ...
- linux ndk编译静态库,Android开发教程:NDK编译静态库失败
Android---NDK编译静态库失败 Android.mk 相关编译文件: include $(CLEAR_VARS) LOCAL_MODULE := libdvnca LOCAL_SRC_ ...
- java jni librtmp_编译Android平台libRTMP库
操作系统: Mac OSX NDK: android-ndk-r10e-darwin-x86_64 编译目标: librtmp.a librtmp.so 简介 Android 官方提供了三种编译方式, ...
- java jni编译_从源码编译Android系统的Java类库和JNI动态库的方法
利用源码编译Android系统Java类库 1.编写Java项目和Android.mk文件 ├── Android.mk └── src └── com └── lhw └── framework └ ...
- 最新版FFmpeg移植Android:编译so库(基于NDK r20和FFmpeg-4.1.0)
FFmpeg是非常强大的编解码库,支持相当多的格式.如果你仔细看一下手机中各种播放器的许可条款,一定不会缺少FFmpeg的身影. 但是网络上FFmpeg移植的资料都非常少,很多还是使用很老的库,比如使 ...
最新文章
- LeetCode 236. 二叉树的最近公共祖先
- element表格图片放大_图片在表格中,鼠标经过图片上方,图片有放大预览效果 (vue+element )...
- cloudera-quickstart-vm-5.13.0-0-virtualbox 中文显示乱码
- linux下exec系列(一)
- 移动站应该尝试百度MIP的五个原因
- Python Tricks(十二)—— 有理数的加法
- 用正则表达式生成文章的目录大纲
- Jsp基本指令和动作
- 如何成为一个合格的JAVA初级程序员
- UVA - 1427 Paradev单调队列
- 学习python的感受
- Cortex-A55核心板 | 瑞萨工业级G2L多核MPU
- 政府采购和招标投标常见问题:评标的依据是什么?
- CW5141S1 TWM 测试例程
- vue引入外部js文件(第三方js工具或者jq库)
- 用借款方实际付出的手续费(或利息)计算真实的手续费率(或利率)
- 时序分析 44 -- 时序数据转为空间数据 (三) 格拉姆角场 python 实践 (上)
- 史上最全图解JVM,京东小哥带你了解性能提升100%背后的秘密武器
- Leetcode LCP 17. 速算机器人
- 计算机视觉工程师收入高吗?月薪有多少?