我想知道是否有可能对包含C++代码的TU调用C语言的TU中的某些功能的程序有效地使用链接时间优化(lto)。因此,有没有办法将C函数内联到结果程序中?

真正的用例是用C++编写的微 Controller 固件。但是由于C的语义,有些代码必须用C编写(例如访问非 Activity 的工会成员)。

(这与作为内联的手动标记功能无关)

最佳答案

这根本不是问题。在GCC和Clang中,链接时间优化都是在代码的中间表示上进行的。也就是说,通过使用-flto,您可以创建带有其他LTO信息(gcc)或LLVM字节码(Clang)的目标文件,此时,源语言就不再重要了。

有些人甚至混合使用了更少的C++和D,但仍然使用LTO:http://johanengelen.github.io/ldc/2016/11/10/Link-Time-Optimization-LDC.html

关于c++ - 混合C++/C程序的链接时优化(lto),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47279354/

10-10 01:21