如果您使用-g(在最近的 GCC或Clang 上可以与优化标志一起使用,例如-O2):
-g)如果您不使用,-g则使用 GDB 调试器会更困难(但可能)。
因此,如果您将二进制可执行文件传输给不应该了解您的源代码是如何编写的合作伙伴,您需要避免 -g
附注。最近的 GCC(例如2021 年的GCC 10或GCC 11)接受许多调试器标志。随着-g3您的可执行文件带有更多的调试信息(例如 C++ 宏及其扩展的描述),带有-g或-g1. 当然,编译时间会增加,可执行文件的大小也会增加。原则上,您的GCC 插件(可能是 2021 年的Bismon,或 Linux内核源代码中的那些)可以添加更多调试信息。实际上,除非您可以改进调试器,否则您不会这样做。但是,GCC 插件(或某些插件#pragma)可以删除一些调试信息(例如,删除选定函数集的调试信息)。