我想内联一些我没有代码的函数。它们存在于目标文件中。有没有办法用 gcc 做到这一点?
换句话说,我想执行这些函数的内联,同时将我自己的代码文件与包含这些函数的目标文件链接起来。
最佳答案
从 4.5 版开始,GCC 支持启用链接时间优化 (LTO) 的 -flto 开关。 LTO 可以从单独的目标文件中内联函数。
不过有一个问题。由于 -flto
的工作方式,它仅对使用该开关编译的目标文件有用。据我了解,GCC 通过将中间形式的源代码放入目标文件来实现 LTO - 如果该中间代码不在目标文件中,则该目标文件中的代码将不会“内联”。
参见 Can the linker inline functions?了解更多详情。
关于c - 从目标文件内联函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6833274/