Должен ли я беспокоиться о предупреждениях g ++, в которых говорится "ошибка встраивания"?

StackOverflow https://stackoverflow.com/questions/1382217

  •  21-09-2019
  •  | 
  •  

Вопрос

В проекте, над которым я работаю в офисе, когда мы компилируем сборку выпуска (с -Os), мы получаем сотни предупреждений от g ++, в которых говорится, что встраивание не удалось.Большинство этих предупреждений, похоже, исходят от boost, однако некоторые исходят из заголовков нашей собственной библиотеки (binary .dylibs, на которые мы ссылаемся).Можно ли вообще безопасно игнорировать эти предупреждения, или это то, о чем мне следует беспокоиться?

Примечание:Мы используем g ++ 4.0 в Mac OS X

Это было полезно?

Решение

g ++ предупреждает о том, что, по сути, является строго проблемой ПРОИЗВОДИТЕЛЬНОСТИ - вы запрашиваете inline реализации, которые просто не могут быть встроены.Если ваше использование inline на самом деле это не имеет значения, вы должны удалить это (компиляторы могут создавать встроенные функции без этой подсказки, вы знаете!-), но с точки зрения корректности кода вы можете проигнорировать предупреждение.Если ваше использование inline действительно имеет значение, т. Е. имеет решающее значение для вашей производительности (в отличие от глупой преждевременной оптимизации), предупреждение говорит вам переработать ваш код, чтобы этого можно было достичь (в худшем случае, перейдя к макросам - вздох, но, когда вы должны, вы ДОЛЖНЫ!-).

Другие советы

Это должно быть сохранено, если вы не

  • обнаружена ошибка в gcc
  • ожидайте встроенных функций в вашем коде
  • пытаться делать гадости

Однако вам следует постараться свести предупреждения к минимуму.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top