我正在尝试为我的Android库添加一个条带调试符号步骤,其中包括用于不同ABI的本机共享库,例如: x86 / native-lib.so,x86_64 / native-lib.so,arm64-v8a / native-lib.so等.
我知道strip命令必须与每个ABI相对应.所以,我需要调用正确的strip命令,为此我需要在构建期间知道它的正确路径.
例如,对于ABI x86_64,我需要具有以下路径设置:
set(STRIP ~/Library/Android/android-ndk-r16b/toolchains/x86_64-4.9/prebuilt/darwin-x86_64/bin/x86_64-linux-android-strip)
add_custom_command(TARGET ${SHARED_LIBRARY_NAME} POST_BUILD
COMMAND ${STRIP}
"${DIST_LIBS_DIR}/${LIB_BUILD_TYPE}/${ANDROID_ABI}/lib${SHARED_LIBRARY_NAME}.so"
COMMENT "Strip debug symbols done on final binary.")
我需要的路径如下图所示:
所以,我的问题:
>是否存在指向此路径的现有CMake变量,即/ android-ndk-r16b / toolchains / ??? / prebuilt / ??? / bin / ??? – ??? – ??? – strip?
>如果没有,是否有办法利用其他已知的Android CMake变量形成此路径,例如: ANDROID_NDK,ANDROID_ABI等?
解决方法:
您可以使用${CMAKE_STRIP}.使用-DCMAKE_TOOLCHAIN_FILE = android.toolchain.cmake时,它会正确设置.如果您使用支持NDK版本的“内置”Android支持,我希望也没关系.
标签:android,android-ndk,cmake
来源: https://codeday.me/bug/20190622/1261561.html