Как отключить ошибку неиспользуемого аргумента командной строки в исходном файле - PullRequest
0 голосов
/ 16 октября 2018

когда я компилирую файл .c в xcode, появляется сообщение об ошибке:

clang error: argument unused during compilation: '-fno-objc-exceptions' [-Werror,-Wunused-command-line-argument]

Я могу добавить дополнительную команду "-Wno-unused-command-line-аргумент" в командную строку clangотключить это предупреждение.Но мне интересно, можно ли его отключить в файле .c, поэтому я добавляю #pragma следующим образом:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-command-line-argument"
...
#pragma clang diagnostic pop

Но это не удалось.

Итак, как отключить это предупреждение вточно исходный файл?

1 Ответ

0 голосов
/ 16 октября 2018

Вы не можете подавить эту диагностику с помощью чего-либо, что вы пишете в исходном файле .c, потому что причина диагностики уже была обнаружена и диагностика выпущена до чтения исходного файла .c, как вы можете наблюдать с этим источникомfile:

fail.c

#error Stop right here

и:

$ clang -c -fno-objc-exceptions fail.c
clang: warning: argument unused during compilation: '-fno-objc-exceptions' [-Wunused-command-line-argument]
fail.c:1:2: error: Stop right here
#error Stop right here
 ^
1 error generated.

Причина диагностики заключается в том, что -fno-objc-exceptions является опциейприменимо только к компиляции Objective C или Objective C ++, и Clang делает вывод, что мы компилируем C, а не Objective или Objective C ++, только из того факта, что имя файла fail.c имеет расширение .c, а не .m или .mm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...