首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

gcc -ggdb和gcc -g有什么区别

在编译过程中,gcc编译器提供了-g选项来生成调试信息。其中,-ggdb和-g都是用于生成调试信息的选项,但它们之间有一些区别。

-ggdb选项是专门为gdb(GNU调试器)设计的,它会生成更丰富的调试信息,以便gdb能够更好地进行调试。使用-ggdb选项编译的程序在使用gdb调试时,可以提供更详细的源代码级调试信息,如变量名、函数名等。

-g选项是一个通用的调试信息生成选项,它会生成一些基本的调试信息,但不一定包含所有的信息。使用-g选项编译的程序在使用gdb调试时,可能会缺少一些源代码级调试信息,如变量名、函数名等。

总的来说,-ggdb选项生成的调试信息更丰富,更适合使用gdb进行调试,而-g选项生成的调试信息较为基本,可能不适合一些复杂的调试场景。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

gccg++是什么,什么区别

需要强调的一点是,这并不是 gcc g++ 的区别,gcc 指令也可以用来编译 C++ 程序,同样 g++ 指令也可以用于编译 C 语言程序。 那么,gcc g++ 的区别是什么呢?...读者可能会认为,C++ 兼容 C 语言,因此对于 C 语言程序来说,使用 gcc 编译还是使用 g++ 编译,应该没有什么区别,事实并非如此。...严格来说,C++ 标准 C 语言标准的语法要求是区别的。...除此之外对于编译执行 C++ 程序,使用 gcc g++ 也是区别的。要知道,很多 C++ 程序都会调用某些标准库中现有的函数或者类对象,而单纯的 gcc 命令是无法自动链接这些标准库文件的。...对于 gcc g++ 指令,还有其它更多细节方面的区别,这里不再做更多的赘述。

1K10

gccg++的区别

gccg++都是GNU(组织)的一个编译器。...,虽然c++是c的超集,但是两者对语法的要求是区别的。...2.编译阶段,g++会调用gcc,对于c++代码,两者是等价的,但是因为gcc命令不能自动C++程序使用的库联接,所以通常用g++来完成链接,为了统一起见,干脆编译/链接统统用g++了,这就给人一种错觉...因为gcc命令不能自动C++程序使用的库联接,所以通常使用g++来完成联接。但在编译阶段,g++会自动调用gcc,二者等价。...gccg++的区别  我们在编译c/c++代码的时候,有人用gcc,有人用g++,于是各种说法都来了,譬如c代码用gcc,而c++代码用g++,或者说编译用gcc,链接用g++,一时也不知哪个说法正确

2.7K10

第009课 gccarm-linux-gccMakefile

查看gcc编译器的版本,显示gcc执行时的详细过程 -o 指定输出文件名为file,这个名称不能跟源文件名同名 -E 只预处理,不会编译、汇编、链接t -S 只编译,不会汇编、链接 -c 编译汇编,不会链接...gcc -v -nostdlib -o hello hello.o: 会提示因为没有链接系统标准启动文件标准库文件,而链接失败。...gcc -c -o hello.o hello.c gcc -static -o hello_static hello.o 第003节c语言指针复习1_指向charint的指针 日常中,我们把笔记写到记事本中...比较时间:比较a.oa.c的时间,如果a.c的时间比a.o的时间更加新的话,就表明a.c被修改了,同理b.ob.c也会进行同样的比较。...对于内核,几万个文件,不可能为每个文件依次写出其头文件。

4.8K30

gcc编译链中i686x86-64什么区别?

(已解决,最后可以当成事实) 暂时理解成:来自网络 1、i686x86_64什么不同?...2、linux系统中的i386/i686x86_64什么区别 回答 i386对应的是32位系统、而i686是i386的一个子集,i686仅对应P6及以上级别的CPU,i386则广泛适用于80386以上的各种...待考虑 找到答案 图 中有很多种交叉编译器,我们只需要关注这两种: gcc-linaro-4.9.4-2017.01- i686_arm-linux-gnueabihf.tar.tar.xz gcc-linaro...这个编译链带的i686或者x86_64Linux开发板没关系,宿主的Ubuntu是64还是32有关系。...4、gcc 表示是 gcc 工具。 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/133932.html原文链接:https://javaforall.cn

2.5K20

【Linux】gcc&g++与 的美妙邂逅(5)

其实在我们的系统中,已经提前有了C++或者其他语言开发相关的头文件,库文件; 也就是说,C++开发环境不仅仅指的是vscode,gccg++,更为重要的是,系统是否含有语言本身的头文件库文件 当我们安装.../g++使用 1. gcc/g++是什么?...、 Java),可以说gcc是GNU编译器集合; 注意点:g++既可以处理C/C++语言,而gcc只能处理C语言;一般我们使用g++即可; 2.gcc/g++的作用效果是什么?...然后我们才能执行;比如我们写了一段代码 (名为a.cpp),你可以用任意文本编辑软件来写,不需要非是IDE 3.gcc/g++ 怎么使用?选项哪些?怎么记忆?...2.编译(生成汇编) 在这个阶段中,gcc 首先要检查代码的规范性、是否语法错误等,以确定代码的实际要做的工作,在检查 无误后,gcc 把代码翻译成汇编语言。

12910

linux下Clanggcc的区别

内置静态分析工具,可以对代码进行静态分析 (clang—analyze) 。这也是 gcc 做不到的 。...专注,因为 clang 只需要完成词法语法分析,代码优化机器代码的生成工作由 llvm 完成。所以全部由自己包下的 gcc 比起来, clang 可以更专注地做好一件事。...这样, editor 工具可以使用 compiler 一样的 parser 来完成 edit-time 的语法检查 。 而 gcc 就没法很方便地做到这一点 。...链接产物超过200M 编译错误极其难以理解:编译错误经常长达几十K,基本不可读,最要命的是编译错误经常会长到被g++截断,看不到真正出错的位置,基本上只能靠裸看代码来调试 这里先不论我使用Spirit的方式是不是问题...当时用的是clang 2.8,刚刚可以完整编译Boost,效果让我很满意: 编译速度显著提升,记得大约是g++的1/3或1/4 编译过程中的内存消耗差别好像不大 中间产出物及最终链接产物,记得也是g+

5K10

深入讲解GCCMake的区别(涉及makefile文件哟!!!)

make就是一个gcc/g++的调度器,通过读入一个文件(默认文件名为Makefile或者makefile),执行一组以gcc/g++为主的shell命令序列。...个人总结: gcc就是一个纯编译器 而make更牛逼些 包括了gcc   只有把makefile解决 一切ok 以上部分来源于网络,如果你对gccmake理解要求不深的话上面的话基本可以打发你了...例:gcc -c hello.c 、gcc -o hello hello.o,但是我们基本一次搞定:gcc hello.c make其实也是个程序,但是这个程序gcc不是一个意思,他主要的工作是引导...而巧的是makefile这个文件里面基本写的都是gcc的命令,所以当你使用make的时候就会发现怎么gcc最后的结果是一样的呀!!...rm -f main *.o #gccrm前面是‘tab’ #这个makefile文件是两个作用的一个是建立一个是删除文件分别命令是:make mainmake rm,当然如果你使用make那系统默认是

11.6K30
领券