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的说明
网友评论