我正在查看 Eclipse 中构建的输出。我正在针对 ColdFire 处理器进行交叉编译。编译行如下所示:
m68k-elf-g++ -O2 -falign-functions=4 -IC:\nburn\include -IC:\nburn\MOD52...
接下来是更多包含文件、明显的“编译器”标志,最后是我更改的一个源文件。下一行再次调用相同的工具:
m68k-elf-g++ src\main.o src\TouchPanelMediator.o src\Startup.o....
接下来是更多 .o 文件、一些 .ld 文件和一些 .a 文件。这似乎将所有不同类型的目标文件链接在一起。
在Gnu家族中,g++是一些超级应用程序,可以根据参数确定是否需要编译或链接?它是否内置了这两种功能,或者只是将编译分派到 gcc 并链接到 ld 而我的日志没有显示这一点?
g++
and gcc
are drivers。通常,他们运行预处理器(cpp
),编译器本身(cc1plus
对于 C++ 和cc1
对于 C)和链接器(gold 或 GNU ld)以及所有其他必要的东西。和...之间的不同gcc
and g++
是后者包含一个额外的库来链接(libstdc++
).
根据调用它们的文件类型,它们可能会省略一些步骤或以不同的方式执行操作。为了.o
例如,它不需要运行适当的编译器或预处理器。
如果你通过了-###
对于他们,您可以看到它打印出在执行的每个步骤中调用的工具。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)