В последнее время я был в крестовом походе, чтобы исключить предупреждения из нашего кода, и стал более знаком с флагами предупреждений GCC (такими как -Wall
, -Wno- <предупреждение об отключении>
, -fdiagnostics-show-option
и т. Д.). Однако я не имею Я не мог понять, как отключить (или даже контролировать) предупреждения компоновщика. Самое распространенное предупреждение компоновщика, которое я получаю, имеет следующую форму:
ld: warning: <some symbol> has different visibility (default) in
<path/to/library.a> and (hidden) in <path/to/my/class.o>
Причина, по которой я его получил, заключалась в том, что используемая библиотека была построена с использованием видимости по умолчанию
, а мое приложение создается с помощью скрытая
видимость. Я исправил это, перестроив библиотеку со скрытой видимостью
.
Мой вопрос: как бы я подавил это предупреждение, если бы захотел? Это не то, что мне нужно сделать сейчас, когда я понял, как это исправить, но мне все еще любопытно, как бы вы подавили это конкретное предупреждение или какие-либо предупреждения компоновщика в целом?
Использование -fdiagnostics-show-option
для любого из флагов C / C ++ / linker не могу сказать, откуда это предупреждение, как с другими предупреждениями компилятора.