1

在我正在办公室工作的一个项目中,当我们编译一个发布版本(使用 -Os)时,我们会收到来自 g++ 的数百条警告,说内联失败。这些警告中的大多数似乎来自 boost,但是有些来自我们自己的库头文件(我们链接到的二进制 .dylibs)。通常可以安全地忽略这些警告,还是我应该担心它们?

注意:我们在 Mac OS X 上使用 g++ 4.0

4

2 回答 2

3

g++ 对本质上严格的性能问题发出警告——您正在请求inline无法内联的实现。如果您的使用inline并不重要,您应该删除它(编译器可以在没有该提示的情况下内联函数,您知道!-),但就代码正确性而言,您可以忽略警告。如果您的使用inline确实很重要,即对您的性能至关重要(而不是愚蠢的过早优化),则警告会告诉您重新编写代码以便实现它(最坏的情况,通过向下移动到宏 - - 叹息,但是,当你必须的时候,你必须!-)。

于 2009-09-05T03:48:55.857 回答
0

如果你不应该保存它

  • 在 gcc 中遇到错误
  • 预测代码中的内联函数
  • 尝试做讨厌的事情

不过,您应该尽量减少警告。

于 2009-09-05T02:59:32.790 回答