如果指定此选项,将无法在所有系统上使用 gprof,并且如果同时指定此选项和 -g,则可能会出现调试问题。 -fbranch-target-load-optimize 在序言/结尾线程之前执行分支目标寄存器加载优化。 目标寄存器的使用通常只能在重新加载期间公开,因此将负载提升出循环并进行块间调度需要单独的优化过程。 -fbranch-target-load-optimiz...
gcc为我们提供了(-static)、(-Wl,-Bstatic)、(-Wl,-Bdynamic),这么几个选项。 第一种用法:使用-static选项,将全部动态库都用静态库替换。 这里有个基于boost库的程序,我们使用普通动态链接的方式编译出来,看看可执行程序的依赖关系。 由上图可见,可执行程序依赖于libboost_thread.so.1.72.0、libpthread.so.0...
gcc选项 -E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面 -S 编译到汇编语言不进行汇编和链接 -c 编译到目标代码 -o 文件输出到 文件 -static 此选项对生成的文件采用静态链接 -g 生成调试信息。GNU 调试器可利用该信息。 -shared 此选项将尽量使用动态库,所以生成文件比较小,...
gcc hello.c -o hello -I .. -g表示可以调试,比如我们之前讲的gdb、valgrind,如果想要调试的时候显示源码、行号,编译的时候就需要加上-g选项。 gcc hello.c -o hello -g -O表示优化,可以是O0到O3,我们之前讲volatile的时候,就用过这个选项,不同的优化等级,对代码的处理略微有些区别。 hello.c #include...
这里用到另一个选项:-E-E:预处理之后就停下来 所以我执行gcc -E myfile.c 但是这样直接执行之后它会把预处理之后文件的内容直接显示到显示器上,这样不太好看。 所以我们也可以-o指定一下文件名,把它放到对应文件里 那对于预处理之后的文件,一般后缀为.i ...
GCC允许您将-g与-O配合使用。GCC开启优化编译选项的结果有时可能会令人惊讶: 声明的某些变量可能被删除; 控制流走到您意想不到的位置; 有些语句可能不会执行,因为它们计算的是常量结果或它们的值已经在手边; 有些语句可能会在不同的位置执行,因为它们已经移出了循环。 GCC允许编译时添加额外的调试信息,以便程序...
-g 只是编译器,在编译的时候,产生调试信息。 -gstabs 此选项以 stabs 格式声称调试信息, 但是不包括 gdb 调试信息。 -gstabs+ 此选项以 stabs 格式声称调试信息, 并且包含仅供 gdb 使用的额外调试信息。 -ggdb 此选项将尽可能的生成 gdb 的可以使用的调试信息。
GCC命令的选项非常多,可以根据不同的需求进行选择,下面将对GCC命令的选项进行简述。 1. 常用选项 (1)-c:只编译不链接,生成目标文件。 (2)-o:指定输出文件名。 (3)-g:生成调试信息。 (4)-Wall:开启所有警告信息。 (5)-Werror:将警告信息视为错误。 (6)-O:优化选项,包括-O0、-O1、-O2、-O3等级别...
选项中包含空白字符的话,可以用一个由单引号或双引号包围完整选项。任何字符(包括反斜杠: '/')均可能通过一个 '/' 前缀而包含在一个选项中。如果该文件本身包含额外的 @file选项,那么它将会被递归处理。结论 在这个系列的教程中,我们一共讲解了 5 个不常见但是很有用的 gcc 命令行选项:-Save-temps-g...