C++ 是g++;两者都是c++;编译器和链接器?

C++ 是g++;两者都是c++;编译器和链接器?,c++,gcc,g++,gnu,ld,C++,Gcc,G++,Gnu,Ld,我正在查看Eclipse中构建的输出。我在为ColdFire处理器交叉编译。编译行如下所示: m68k-elf-g++ -O2 -falign-functions=4 -IC:\nburn\include -IC:\nburn\MOD52... 接着是更多的include文件、明显的“compiler”标志,最后是我更改的一个源文件。下一行再次调用相同的工具: m68k-elf-g++ src\main.o src\TouchPanelMediator.o src\Startup.o....

我正在查看Eclipse中构建的输出。我在为ColdFire处理器交叉编译。编译行如下所示:

m68k-elf-g++ -O2 -falign-functions=4 -IC:\nburn\include -IC:\nburn\MOD52...
接着是更多的include文件、明显的“compiler”标志,最后是我更改的一个源文件。下一行再次调用相同的工具:

m68k-elf-g++ src\main.o src\TouchPanelMediator.o src\Startup.o....
接下来是更多的.o文件、一些.ld文件和一些.a文件。这似乎将所有不同类型的对象文件链接在一起


在Gnu家族中,g++是一个可以根据参数确定是否需要编译或链接的uber应用程序吗?它是内置了这两种功能,还是只是将编译发送到gcc并链接到ld,而我的日志却没有显示这一点

它发送链接到ld

另请参见此处: 摘自:

根据您提供给程序的文件扩展名,它选择需要运行的适当命令,以将您提供给它的源转换为您指定的输出文件

根据文件扩展名的不同,有一个很好的GCC具体工作流程图:

input extensions      runs     if   output  

g++
gcc
是驱动程序。通常,它们运行预处理器( CPP)、编译器适当的(<代码> C1Pull < /C> > C++和<代码> Cc1<代码> C)和链接器(Gold或GNU LD)和其他所有必要的东西。
gcc
g++
之间的区别在于后者包含一个额外的库来链接(
libstdc++

根据调用它们的文件类型,它们可能会省略某些步骤或以不同的方式执行操作。例如,对于
.o
文件,它不需要正确运行编译器或预处理器


如果您将
-####
传递给他们,您可以看到它打印在执行的每个步骤中调用的工具

>……这可能会帮助,谢谢,我在问之前搜索过,但我猜还不够好,虽然我确实找到了答案,但我在这里简洁明了。几秒钟前我认为CPP是另一个C++编译器。