Подтвердить что ты не робот

Как отключить неиспользуемую ошибку аргумента командной строки с помощью clang, не отключив ее?

При использовании -Werror с clang, он превращает сообщения "предупреждение: аргумент, неиспользуемый во время компиляции" в ошибки, что имеет смысл. Там есть флаг -Qunused-arguments, чтобы полностью их отключить. Мой вопрос в том, есть ли какой-нибудь флаг -Wno-error=..., который я могу передать, чтобы они не были ошибками, не отключив их полностью?

4b9b3361

Ответ 1

Выводит правильный ответ -Wno-error=unused-command-line-argument.

Ответ 2

Вы также можете использовать эту команду:

-Wno-unused-command-line-argument

Ответ 3


Мое первое (возможно, ошибочное) впечатление:

Даже если вы используете флаг -Werror, вы можете повернуть это конкретное предупреждение (как ошибку), добавив флаг: -Wno-unused-variable. Или вы можете сохранить предупреждение, не повышая его до ошибки: -Wno-error-unused-variable

Для неиспользуемых аргументов функции: -Wno-unused-parameter или -Wno-error-unused-paramter


Edit

Снова прочитав вопрос, я понимаю, что вы хотите сохранить предупреждение о неиспользуемых аргументах командной строки, без -Werror продвижения их к ошибкам. Я думаю, тебе не повезло. Там нет -Qunused-argument, как -Qno-...; лично я считаю, что это злоупотребление -W[no-|no-error-]<option> и должно быть отделено от проверки командной строки - но то, что мы застряли с ним, кажется.

Действительно, наилучшее применение -Werror - для вашей собственной разработки кода. Это печально известно для взлома сторонних пакетов и сборки autotools/configure.

Ответ 4

В моем случае у меня были похожие проблемы с autoconf при использовании компилятора clang-8 в. /configure.

*clang-8: error: unknown argument: '-ftree-loop-distribute-patterns'*
*clang-8: error: unknown argument: '-fno-semantic-interposition'*

Мне понадобилась следующая командная строка, чтобы исправить эти ошибки:

./configure CC=clang-8 CXX=clang++-8 LD=clang++-8 CFLAGS=-Qunused-arguments

Надеюсь, что это полезно для других.

Ответ 5

В Visual Studio 2019 откройте страницы свойств проекта C++ и перейдите в Свойства конфигурации → C/C++ → CommandLine.

В текстовом поле "Дополнительные параметры" вставьте

-Wunused-command-line-argument

Сделайте это для каждой комбинации конфигурации/платформы. Это сработало для меня, чтобы отключить только это предупреждение.

Ответ 6

#pragma clang diagnostic ignored "-Wunused-parameter"