我不知道这是多么可行,这个问题在多大程度上是明智的。
我们可以在makefile中进行任何更改以推荐GCC内联所有函数,尽管函数在声明期间没有内联或在源文件中没有内联。
答案 0 :(得分:3)
有几种方法可以制作gcc内联函数。其中一个是选项-finline-functions
,它将使gcc内联“简单”功能。编译器使用一些启发式方法来确定函数是否足够小以便内联。但是,用户可以通过-finline-limit
对此算法进行一些控制。阅读gcc手册以查找所需的实际值。
在内联函数时,您应该记住,显然并非所有函数都可以内联(最简单的示例是递归函数),并且编译器只能内联在同一个转换单元中定义的函数。此外,值得一提的是-finline-functions
默认情况下在-O3
处于启用状态,因此只有-O3
可能是您的解决方案。
在makefile中,您必须为所有gcc调用添加正确的选项。在编写良好的makefile中,您可以轻松地使用其他gcc选项查找变量,您可以在其中放置自己的变量。
答案 1 :(得分:1)
gcc -finline_functions
选项听起来像它可能会做你想要的。这是some documentation。如果你的makefile定义了一个CFLAGS变量,那么它就是放置它的地方。