礼品代发网

礼品代发网

收录130107113题,礼品代发网免费搜题解答

今日已更新0道题

编译在哪里-编译-g

2025-11-20 06:20:42  

编译在哪里-编译-g

优质解答

“编译-g”是命令行里加的一个小标志,专门让编译器在生成代码时多留些“脚印”。比如你用gcc写个程序,直接写“gcc程序.c”就会直接编译成可执行文件。但如果加上“gcc -g程序.c”,编译器就会在生成的文件里多写些调试用的信息,比如函数调用路径、变量修改记录什么的,方便后面用调试工具找bug。

为啥这么设计呢?因为编译器原本默认是怕体积大就省略这些信息,但调试时没这些“脚印”就像迷路没地图。根据Linux man手册,-g参数确实会让生成的文件包含调试符号,而像GCC官方文档也提到,加了-g后生成的文件体积会增加约10%-20%。比如我之前编译一个500KB的C程序,不加-g是480KB,加-g变成550KB。不过要注意,发布正式版时最好去掉-g,不然文件会变胖,而且别人用调试工具时会看到你的代码逻辑。就像我上次给同事发程序,他用了-g版调试,结果发现我写的注释全是“123456”的占位符,害得他花半小时才看懂。所以用不用-g得看场景,开发时加,发出去就删。

本题链接:

编译命令行参数