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