美文网首页
android cmake 交叉编译 libc++_shared

android cmake 交叉编译 libc++_shared

作者: 光能蜗牛 | 来源:发表于2022-12-20 17:58 被阅读0次
    cmake 
    -DCMAKE_TOOLCHAIN_FILE=D:\Android\Sdk\ndk\21.3.6528147\build\cmake\android.toolchain.cmake
    -DANDROID_ABI="arm64-v8a" 
    -DANDROID_PLATFORM=android-30 ..
    

    cmake -DCMAKE_TOOLCHAIN_FILE=D:\Android\Sdk\ndk\21.3.6528147\build\cmake\android.toolchain.cmake -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-30 ..

    cmake325 -DCMAKE_TOOLCHAIN_FILE=/root/android_tools/android-sdk-linux/ndk/23.1.7779620/build/cmake/android.toolchain.cmake -DANDROID_NDK=$ANDROID_NDK -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-26 ..

    关于上述命令指定的工具链生成so之后,会导致出现 libc++_shared.so not found的问题

    有两种解决方案,一种是直接修改上面的的命令改为如下,即增加参数-DANDROID_STL=c++_static 变成下面的命令

    cmake325 -DCMAKE_TOOLCHAIN_FILE=/root/android_tools/android-sdk-linux/ndk/23.1.7779620/build/cmake/android.toolchain.cmake  \
     -DANDROID_NDK=$ANDROID_NDK  \
    -DANDROID_ABI="arm64-v8a"   \
    -DANDROID_PLATFORM=android-26  \
    -DANDROID_STL=c++_static   ..
    
    

    另一种是直接修改CMakeLists.txt


    image.png

    这两种方式本质上就是把共享库方式改成静态库方式打入可执行文件中

    关于这个的解释可以参考
    https://developer.android.com/ndk/guides/cmake#command-line的说明

    image.png

    相关文章

      网友评论

          本文标题:android cmake 交叉编译 libc++_shared

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