gcc 最开始的时候是 GNU C Compiler, 如你所知,就是一个c编译器。但是后来因为这个项目里边集成了更...
-g2:默认-g的调试级别; -g3:相对-g,生成额外的信息,例如所有的宏定义; 和-O一样,如果多个级别的-g选项同时存在,最后的选项会被生效 综上,很多项目的线上版本都是使用”-O2 -g”的编译选项进行编译,以便发生问题的时候容易定位。但这有一个很大的弊端就是目标文件会比不开启调试信息的情况下大很多,所以一...
GCC在产生调试符号时,同样采用了分级的思路,开发人员可以通过在-g选项后附加数字1、2或3来指定在代码中加入调试信息 的多少。默认的级别是2(-g2),此时产生的调试信息包括扩展的符号表、行号、局部或外部变量信息。级别3(-g3)包含级别2中的所有调试信息,以及 源代码中定义的宏。级别1(-g1)不包含局部变量和与...
-On : “O”是大写,对程序进行优化编译,链接,n可取值为0、1、2、3;O0没有优化等级,O3优化等级最高,采用这个选项,整个源代码会在编译,链接过程中进行优化处理,这样产生的可执行文件是执行效率可以提高,但是编译,链接的速度就相应的要慢一些 -g : 产生符号调试工具(GNU的gdb)所必需的符号信息,要想对源代码...
默认的级别是2(-g2),此时产生的调试信息包括:扩展的符号表、行号、局部或外部变量信息。 级别3(-g3)包含级别2中的所有调试信息以及源代码中定义的宏。 级别1(-g1)不包含局部变量和与行号有关的调试信息,因此只能够用于回溯跟踪和堆栈转储。 回溯追踪:指的是监视程序在运行过程中函数调用历史。 堆栈转储:则是...
2、 ~/.bashrc 或者 ~/.bash_profile 里添加上面的命令: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/project/lib 1. 重启终端生效。 3、编辑 /etc/ld.so.conf 文件(或者在 /etc/ld.so.conf.d 目录下新建一个 project.conf 文件),添加自定义动态库路径,然后使用 ldconfig 命令更新,使其生效。
gcc 在产生调试符号时,同样采用了分级的思路,开发人员可以通过在 -g 选项后附加数字1、2、3指定在代码中加入调试信息的多少。默认的级别是2(-g2),此时产生的调试信息包括:扩展的符号表、行号、局部或外部变量信息。 级别3(-g3)包含级别2中的所有调试信息以及源代码中定义的宏。
GCC在产生调试符号时,同样采用了分级的思路,开发人员可以通过在-g选项后附加数字1、2或3来指定在代码中加入调试信息的多少。默认的级别是2(-g2),此时产生的调试信息包括扩展的符号表、行号、局部或外部变量信息。级别3(-g3)包含级别2中的所有调试信息,以及源代码中定义的宏。级别1(-g1)不包含局部变量和与...
-g2(-g)/-g3 打开调试开关,这样这份代码就可以被调试。 -g3可以调试宏定义的代码 -O0/-O1/-O2/-Os/-O3 编译器优化,一般自己不需要加,因为在O2及以上的等级都会导致不愉快的调试。 然而打开O2编译等以上的优化可以找出一些越界等问题。 Os为O2.5优化,也就是打开O2但不增加代码长度,有时候会有问题 ...
1. 解释 gcc 的 -g 选项是什么 -g 选项是 gcc(GNU Compiler Collection)编译器的一个调试选项。当使用这个选项编译程序时,gcc 会在生成的可执行文件或目标文件中包含调试信息。这些调试信息对于使用调试器(如 gdb)进行程序调试至关重要。 2. 阐述 -g 选项在编译过程中的作用 在编译过程中,-g 选项指示 gcc...