Is g++ both a c++ compiler and a linker?
我正在查看我的内置Eclipse的输出。我正在为一个Coldfire处理器进行交叉编译。编译行如下所示:
1 2 3 | m68k-elf-g++ -O2 -falign-functions=4 -IC: burn\include -IC: burn\MOD52... |
接下来是更多的include文件,明显的"compiler"标志,最后是我更改的一个源文件。下一行再次调用相同的工具:
1 | m68k-elf-g++ src\main.o src\TouchPanelMediator.o src\Startup.o.... |
号
然后是更多的.o文件,一些.ld文件和一些.a文件。这似乎将所有不同类型的对象文件链接在一起。
在GNU系列中,G++是一些可以根据参数确定是否需要编译或链接的Uber应用程序?它有内置的两种功能吗,或者只是将编译发送到gcc并链接到ld,而我的日志并没有显示这一点?
根据调用它们的文件类型,它们可能省略一些步骤或以不同的方式执行操作。例如,对于
如果您将
摘自GCC指南:
Based on the file extension that you gave your program, it selects the appropriate commands it needs to run to turn the source you gave it into the output file you specified.
号
根据文件扩展名,有一个很好的GCC具体功能流程图:
1 | input extensions runs if output |
。
它发送链接到ld。
另请参见此处:如何获取gcc链接器命令?