簡體   English   中英

是否有gcc的選項丟棄-g標志?

[英]Is there an option for gcc which discards -g flag?

我正在構建一個提供許多makefile的包,每個makefile都有類似的硬編碼

CFLAGS = -g -O2 -Wall ...
CXXFLAGS = -g -O2 -Wall ...

我想丟棄-g選項,但我不想編輯所有的makefile(甚至不能自動使用sed或類似的東西)。 該軟件包附帶的configure腳本沒有啟用/禁用調試選項,但我可以將CFLAGSCXXFLAGS變量傳遞給它,並將它們的值連接到分別包含-g選項的CFLAGSCXXFLAGS變量。

是否有一個選項會在指定的情況下丟棄-g 就像是

gcc -option-im-looking-for -g file.c -o file

將構建沒有調試符號的二進制file 我不想剝離二進制文件,我希望它被創建剝離。

您可以通過添加-g0否定 -g的效果。

gcc -g -g0 foo.c -o file.o

會產生一個二進制相同的二進制文件

gcc foo.c -o foo.o

引用man gcc

   -glevel
   ...
        Level 0 produces no debug information at all.  Thus, -g0 negates
       -g.

您無需編輯makefile。 只需覆蓋命令行上的變量:

$ cat Makefile 
CFLAGS = -g -Wall
all:
    echo $(CFLAGS)
$ make
echo -g -Wall
-g -Wall
$ make CFLAGS=-Wall
echo -Wall
-Wall

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM