J. *_*one 6 gcc mingw mingw-w64
当你检查 mingw 时,你会发现 c 编译器 cc1.exe (有趣的是,在 9.2 中,大小不断增长,几乎 25 MB) cc1plus.exe 是 c++ 编译器(大小相同)collect2.exe 是链接器(afiak)坚果 lto1.exe 是什么?
我用谷歌搜索了一个多小时,但没有找到这方面的信息..有关于这方面的一些好的信息可供阅读吗?tnx
附:我怀疑它可能与链接时间优化有关,但没有发现更多关于它的信息,我想了解更多
还有一个问题 gcc.exe g++.exe 和 mingw32-gcc.exe mingw32-g++.exe 是什么?
我需要更多信息,越多越好,tnx
这不是 mingw / Windos 特有的;它是 GCC 的一个功能/组件。
lto1.exe是什么?
这是 lto 编译器:o)。lto 基本上是用编译时编写的字节代码,-flto其中“lto”或“LTO”代表“链接时优化”。
这些优化不是由链接器执行,而是由编译器在链接时执行,以便在所有模块的(字节)代码可用时执行全局优化。流程如下:
cc1对于 C 或cc1plusC++)将 C/C++ 编译为字节码并将其写入汇编文件*.s。*.o。lto 代码在专用部分中提供。lto1编译器将其编译为最终的机器代码。您可以查看 lto 部分中的字节码并-save-temps查看保存的*.s文件。最新版本的 GCC 甚至不需要编写汇编代码;他们只是编写 lto 代码。要查看汇编代码,请指定-ffat-lto-objects。但请注意,这不是最终代码。
有趣的是,9.2 中的大小不断增长,几乎达到 25 MB
GCC 可执行文件的大小不仅取决于 GCC 主要版本,而且很大程度上取决于用于构建 GCC 的编译器的优化程度。
[编辑] 有关 LTO 的一些信息可以在LTO 的 GCC wiki上找到。但请注意,此页面不再活跃。血淋淋的 GCC 内部结构的一处去处是gcc-help@gcc.gnu.org 邮件列表,所有开发人员都在其中。GCC 内部还有一个关于 LTO 的部分。
| 归档时间: |
|
| 查看次数: |
1510 次 |
| 最近记录: |