浅谈gcc和g++的区别

gcc和g++的使用区别:

针对C分析:

在Linux系统中,gcc和g++都能处理C或者C++的代码,其中gcc和g++对于C文件的最终的处理结果是一样的,g++在编译C文件时会调用gcc,这里,二者的差别主要在c++文件的处理上产生分歧。

针对C++分析:

下面我们按照对C++文件处理的过程来认识gcc和g++在不同阶段的使用区别:

1.预处理阶段:

在预处理阶段两条命令都能够成功,并且我们观察gcc和g++各自产生的.i后缀的文件,它们的内容都是相同的,所以我们能够发现gcc和g++在c++文件中它们做了相同的事情。

2.编译阶段:

g++可以通过编译并且生成汇编文件,而gcc无法自动和c++的库文件进行连接,可能会导致产生库函数没有申明的错误。

3.汇编阶段:

这个过程只是将后缀为.s文件中的汇编语言转换成了相应的机器语言。所以gcc和g++在这个过程中做了同样的事情。

4.链接阶段:

这个阶段也出现了问题,用gcc将.cpp后缀产生的.o文件转换成可执行文件时出现了错误,而g++却可以转换成功并且能够正确执行。这个问题出现的原因还是因为gcc无法将库文件与.o后缀的文件关联在一起生成可执行程序,而g++可以完成这项工作。

总结:

因此,总的来说,gcc和g++的区别主要是在对c++文件的编译和链接过程中,因为c++和c文件中库文件的命名方式不同,而这里g++既可以编译C又可以编译C++的原因是因为g++在内部做了处理,默认编译C++程序,但如果遇到C程序,它会直接调用gcc去编译.

你可能感兴趣的:(Linux学习,linux)