gcc - 理解 g++ 编译标志

标签 gcc g++

我想知道每个标志对代码的作用以了解其开销。我检查了
man g++'-g'旗帜

仅找到 "Generate extra code to write profile...."
没有具体说明在哪里?

他们是否有任何详细的手册来帮助我理解 -g/-p 的作用?

最佳答案

“生成额外的代码来编写配置文件”是 -p选项,这将添加额外的代码。额外代码的范围至少是一个寄存器加载和一个函数开始和结束时的函数调用,但这确实取决于体系结构。这可能反过来影响编译期间的其他优化,例如寄存器的可用性、内联以及实际运行代码时,它可能会影响缓存命中率/未命中率,除了执行这些额外指令的直接影响之外。
-g option 本身并不添加额外的代码,它只是生成成为可执行文件一部分的调试符号,以便调试器可以在您使用调试器时找出函数、变量等的位置。

关于gcc - 理解 g++ 编译标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17212054/

相关文章:

windows - g++ 为 Windows 生成可执行文件

c++ - Visual Studio 编译并检测操作符重载,而 g++ 则不然

c++ - 更新 ubuntu 10.4 后无法将 errno.h 与 gcc/g++ 一起使用

c++ - gcc 显示来自系统库的错误。 -isystem 不工作

c - 通过使用 AVX 内在函数重写来提高 math.h 函数的性能

c - 重定向到 file.txt 时 fork() 的意外输出

compiler-errors - g++ 错误需要一个类型,得到 ‘classname’

optimization - 有没有办法告诉 GCC 不要优化一段特定的代码?

c++ - constexpr lambda/‘x’ 没有命名类型;你是说 ‘x’ 吗?

c++ - 为什么这个浮点运算编译得如此奇怪(没有优化)?