3

我知道 Clang 和 GCC 或多或少是兼容的 C/C++ 编译器,只要它负责架构标志、预定义和链接正确的库之类的事情。使用一个编译器创建库并将它们与另一个编译器创建的对象链接实际上非常容易(至少在 x86 上)。

这是一个小测试项目,正是这样做的: https ://gitlab.com/higaski/Interoperability

但是,我想知道链接时间优化(LTO)是否可以跨编译器工作?我知道 LTO 需要某种形式的中间表示,例如 LLVM 位码或 GCC GIMPLE,但也许有一个工作流可以同时使用它们?

4

1 回答 1

2

不,LTO 不能在编译器之间共享,正是因为它实际上是编译器内部表示的转储。即使在同一编译器的不同版本中,这种表示也是不稳定的。

于 2018-10-29T12:49:39.883 回答