是否有gcc的选项丢弃-g标志?

e27*_*314 7 c++ linux debugging gcc

我正在构建一个提供许多makefile的包,每个makefile都有类似的硬编码

CFLAGS = -g -O2 -Wall ...
CXXFLAGS = -g -O2 -Wall ...
Run Code Online (Sandbox Code Playgroud)

我想丢弃-g选项,但我不想编辑所有的makefile(甚至不会自动编辑sed或类似的东西).configure包中附带的脚本没有启用/禁用调试选项,但我可以传递它CFLAGSCXXFLAGS变量,并将它们的值连接到包含选项的变量CFLAGSCXXFLAGS变量-g.

是否有一个选项会-g在指定的情况下丢弃?就像是

gcc -option-im-looking-for -g file.c -o file
Run Code Online (Sandbox Code Playgroud)

将构建file没有调试符号的二进制文件.我不想剥离二进制文件,我希望它被创建剥离.

dev*_*ull 11

你可以通过添加来否定效果.话-g-g0

gcc -g -g0 foo.c -o file.o
Run Code Online (Sandbox Code Playgroud)

会产生一个二进制相同的二进制文件

gcc foo.c -o foo.o
Run Code Online (Sandbox Code Playgroud)

引用man gcc:

   -glevel
   ...
        Level 0 produces no debug information at all.  Thus, -g0 negates
       -g.
Run Code Online (Sandbox Code Playgroud)