防止gcc内联所有函数

3
以下代码可防止GCC编译器内联特定函数。
void __attribute__ ((noinline)) my_func() 
{
  ... 
}

我希望阻止gcc内联所有函数。 是否可以在不将属性添加到所有函数的情况下完成?

1个回答

10
全局选项以避免内联(使用-O2或其他优化标志时)是-fno-inline

-fno-inline 除了那些带有always_inline属性的函数之外,不要展开任何函数。 这是默认设置,没有进行优化。

(来源: https://gcc.gnu.org/onlinedocs/gcc-4.9.1/gcc/Optimize-Options.html)

如果您这样做是为了减小代码大小,我建议您加入-Os选项(针对大小进行优化)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接