zoukankan      html  css  js  c++  java
  • Build Assimp library for Android

    Build Assimp library for Android

    首先各路教程中有推荐使用 NDK 或者 STANDALONE TOOLCHAIN 编译的,根据我的理解,这两种方式都是可以的,如果能直接使用 NDK 编译成功的话,就没有必要使用 STANDALONE TOOLCHAIN 了。

    NDK build assmip library

    cmake

    cmake -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN} 
        -DCMAKE_SYSTEM_NAME=Android -DANDROID_ABI=arm64-v8a 
        -DANDROID_STL=c++_shared -DANDROID_TOOLCHAIN=clang -DANDROID_NATIVE_API_LEVEL=23 
        -DCMAKE_BUILD_TYPE=Release 
        -DASSIMP_BUILD_TESTS=OFF -DBUILD_SHARED_LIBS=FALSE -DASSIMP_NO_EXPORT=TRUE 
        -DASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT=FALSE -DASSIMP_BUILD_FBX_IMPORTER=TRUE  -DASSIMP_BUILD_ASSIMP_TOOLS=OFF 
        -DCMAKE_INSTALL_PREFIX=./install 
        -DCMAKE_MAKE_PROGRAM=ninja -GNinja ..
    
    

    其中:

    NDK_PATH=${ANDROID_HOME}/ndk-bundle/
    
    CMAKE_TOOLCHAIN=${ANDROID_HOME}/ndk-bundle/build/cmake/android.toolchain.cmake
    

    注意其中的 ASSIMP_BUILD_TESTS 一定要设置关闭,否则编译失败,报一个 pthread 的链接错误。

    cmake 执行后会有一些 warnning 可以不用解决。

    -- Could NOT find rt (missing: RT_LIBRARY) 
    INFO RT-extension not found. glTF import/export will be built without Open3DGC-compression.
    
    

    make

    然后执行

    ninja
    ninja install
    

    Update:

    下述问题不再出现

    此处遇到问题是 error: unknown type name 'z_crc_t' 直接找到对应的源文件,添加声明即可。

    typedef unsigned long z_crc_t;
    

    Use lib

    将动态库和头文件加入工程即可使用,记得将 cmake build 目录下的 include/assimp/config.h 拷贝到所用的工程的 include 目录下。

    参考

    https://wxdut.com/15271715037538.html

    CMake

    Windows环境下编译Assimp库生成Android可用的.so文件

    Android compilation on Windows

  • 相关阅读:
    tips
    数学建模-预测模型优缺(搬运)
    数学建模-灰色预测模型GM(1,1)_MATLAB
    Floyd算法_MATLAB
    第二章 运算方法与运算器(浮点数的加减法,IEEE754标准32/64浮点规格化数)
    面向对象
    for循环
    if---else
    airflow的web任务管理
    airflow原理
  • 原文地址:https://www.cnblogs.com/psklf/p/9909162.html
Copyright © 2011-2022 走看看