android cmake 交叉编译 libc++_shared

2022-12-20  本文已影响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
上一篇下一篇

猜你喜欢

热点阅读