我知道 Clang 和 GCC 或多或少是兼容的 C/C++ 编译器,只要它负责架构标志、预定义和链接正确的库之类的事情。使用一个编译器创建库并将它们与另一个编译器创建的对象链接实际上非常容易(至少在 x86 上)。
这是一个小测试项目,正是这样做的: https ://gitlab.com/higaski/Interoperability
但是,我想知道链接时间优化(LTO)是否可以跨编译器工作?我知道 LTO 需要某种形式的中间表示,例如 LLVM 位码或 GCC GIMPLE,但也许有一个工作流可以同时使用它们?