美文网首页
在CMake工程中使用NDK独立工具链 (二)

在CMake工程中使用NDK独立工具链 (二)

作者: RonZheng2010 | 来源:发表于2019-05-24 16:49 被阅读0次

    从android-ndk-r19开始,NDK提供了脚本android.toolchain.cmake,设置CMake所需工具链位置。

    1. 下载 NDK

    从Android官网NDK归档找到需要的NDK版本,并下载解压:

    $ wget https://dl.google.com/android/repository/android-ndk-r19c-linux-x86_64.zip
    $ unzip android-ndk-r19c-linux-x86_64.zip
    

    2. CMake设置

    android.toolchain.cmake在build/cmake目录下,首先用include()调用这个脚本设置工具链位置。

    这里使用c++_shared作为C++库,需要调用add_compile_options()指定C++库的头文件位置。

    clang使用--target选项指定目标architecture。这里通过CMAKE_C_FLAGS指定它的值为armv7a-linux-androideabi28。

    如果有一些所有模块都使用的库,如liblog.so, ligz.so,可以使用add_link_options()链接它们。

    set (ANDROID_ABI arm64-v8a)
    set (ANDROID_PLATFORM android-28)
    set (ANDROID_TOOLCHAIN clang)
    set (ANDROID_STL c++_shared)
    
    include (${ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake)
    
    set (CMAKE_C_FLAGS --target=armv7a-linux-androideabi28)
    
    add_compile_options (-I${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1)
    add_link_options (-llog -lz)
    

    相关链接

    CMake 常用法
    用CMake构建中等规模的工程
    在CMake工程中使用NDK独立工具链 (一)
    在CMake工程中使用NDK独立工具链 (二)

    参考资料

    Using the NDK with other build systems
    https://developer.android.google.cn/ndk/guides/other_build_systems?hl=zh-cn

    相关文章

      网友评论

          本文标题:在CMake工程中使用NDK独立工具链 (二)

          本文链接:https://www.haomeiwen.com/subject/okknzqtx.html