Linux 你能帮我做一个“电话”吗;。a「;包含gcc和clangx27的静态库;什么是红外码?

Linux 你能帮我做一个“电话”吗;。a「;包含gcc和clangx27的静态库;什么是红外码?,linux,gcc,clang,static-libraries,link-time-optimization,Linux,Gcc,Clang,Static Libraries,Link Time Optimization,gcc和clang都通过允许目标文件(.o)不仅包含机器的目标代码,而且还包含编译器本身使用的中间表示(GIMPLE或LLVM位代码)来实现链接时间优化。这些对象文件可以打包到静态归档文件中,并为静态链接做好准备 那些支持lto的归档文件的规范是,它们通过包含正常的机器代码(这样它们就可以像正常的一样工作)和IR而变得“胖”。但是,有没有可能用多种类型的IRs制作一个“非常胖”的档案,并让编译器识别出相应的IRs?以下是一些挑战: 这两个编译器似乎都建议对ar进行修改,以确保IR被包含和索引。

gcc和clang都通过允许目标文件(
.o
)不仅包含机器的目标代码,而且还包含编译器本身使用的中间表示(GIMPLE或LLVM位代码)来实现链接时间优化。这些对象文件可以打包到静态归档文件中,并为静态链接做好准备

那些支持lto的归档文件的规范是,它们通过包含正常的机器代码(这样它们就可以像正常的一样工作)和IR而变得“胖”。但是,有没有可能用多种类型的IRs制作一个“非常胖”的档案,并让编译器识别出相应的IRs?以下是一些挑战:

  • 这两个编译器似乎都建议对
    ar
    进行修改,以确保IR被包含和索引。gcc有
    gcc-ar
    (插件),而clang有
    llvm-ar
  • Clang不会产生“胖”档案。事实上,标准GNU工具无法解释其位码对象文件

Clang's Thinto似乎正是您想要的。