C++ 是g++;两者都是c++;编译器和链接器?
我正在查看Eclipse中构建的输出。我在为ColdFire处理器交叉编译。编译行如下所示: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....
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
是驱动程序。通常,它们运行预处理器(gcc
和g++
之间的区别在于后者包含一个额外的库来链接(libstdc++
)
根据调用它们的文件类型,它们可能会省略某些步骤或以不同的方式执行操作。例如,对于.o
文件,它不需要正确运行编译器或预处理器
如果您将
-####
传递给他们,您可以看到它打印在执行的每个步骤中调用的工具 >……这可能会帮助,谢谢,我在问之前搜索过,但我猜还不够好,虽然我确实找到了答案,但我在这里简洁明了。几秒钟前我认为CPP是另一个C++编译器。