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