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

  • 相关阅读:
    nginx基础系列
    常用MS-SQL写法整理
    Spring Bean装配方式
    sql获取该周的开始结束日期
    Docker基础入门实践
    vim常规操作
    基于CentOS的SSHD服务的Docker镜像
    RedisClient For .Net
    Redis数据类型及使用场景
    CentOS下安装Redis
  • 原文地址:https://www.cnblogs.com/psklf/p/9909162.html
Copyright © 2011-2022 走看看