相关疑难解决方法(0)

如何为strip文件配置cmake

当我在发布模式下使用cmake时,我有以下二进制文件:

64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=485ac09b0a3aa879f88b7f5db6c00ea8d8e1eaf6, not stripped
Run Code Online (Sandbox Code Playgroud)

我希望剥离二进制文件.我怎么能以干净的方式说cmake将-s选项添加到我的编译器中以使其被剥离?

为什么默认释放模式不会剥离我的二进制文件?

c++ gcc release compilation cmake

11
推荐指数
4
解决办法
1万
查看次数

CMake构建工具链中“strip”命令的Android NDK路径变量

我想添加一个带调试符号一步为我的Android库,其中包括针对不同的ABI,例如本地共享库x86/native-lib.sox86_64/native-lib.soarm64-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.")
Run Code Online (Sandbox Code Playgroud)

我需要的路径如下图所示: 在此处输入图片说明

所以,我的问题是:

  • 是否有现有的 CMake 变量指向此路径,即/android-ndk-r16b/toolchains/???/prebuilt/???/bin/???-???-???-strip

  • 如果没有,有没有办法,形成利用其他已知的Android CMake的变量此路径,例如ANDROID_NDKANDROID_ABI等?

android cmake android-ndk

6
推荐指数
2
解决办法
2660
查看次数

标签 统计

cmake ×2

android ×1

android-ndk ×1

c++ ×1

compilation ×1

gcc ×1

release ×1