c – 如何为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

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

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

解决方法:

最干净的方法是修改CFLAGS或CXXFLAGS(取决于C或C代码)

set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -s")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s")

但是如果你不想改变你的构建系统还有一个黑客攻击(找出确切位置放在上面的行可能会很棘手).您可以将strip用作独立应用程序,例如:

strip -s a.out

在可执行文件准备好作为构建后步骤发布后执行此操作.我发现这种方式更干净,然后令人不安的编译器标志.

上一篇:android – 错误:无法解析以下类的超类型.请确保您在类路径中具有所需的依赖项


下一篇:python-如何在Linux环境中读取Windows文件?