我知道 Clang 和 GCC 或多或少是兼容的 C/C++ 编译器,只要处理好架构标志、预定义和链接正确的库之类的事情。使用一个编译器创建库并将它们与另一个编译器创建的对象链接实际上非常简单(至少在 x86 上)。
这是一个小测试项目,正是这样做的:https://gitlab.com/higaski/Interoperability https://gitlab.com/higaski/Interoperability
但是我想知道链接时间优化(LTO)是否可以跨编译器工作?我知道 LTO 需要某种形式的中间表示,例如 LLVM 位码或 GCC GIMPLE,但也许有一个工作流程可以同时利用它们?
不,LTO 不能在编译器之间共享,正是因为它实际上是编译器内部表示的转储。即使在同一编译器的不同版本之间,这种表示形式也是不稳定的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)