Нет опции -W
для «# прагма один раз в главном файле», поэтому вы не можете отключить ее обычными способами. (Тем не менее, разработчики звона хорошо осведомлены, что предупреждения без -W
опций сосать, и есть общее правило, которое новое предупреждения всегда получить -W
вариант. Очистка коды старого, к сожалению, остаются в качестве упражнения для расстроенного . пользователей)
Если вы не возражаете оболочки повозка, запряженная волами, вы всегда можете сделать что-то вроде этого:
# This gives the warning...
clang -c myheader.h
# ...This doesn't.
echo '#include "myheader.h"' | clang -c -x c++-header -o myheader.h.gch -
задний -
, как обычно, означает «чтение со стандартного ввода». -x c++
сообщает Клану, на каком языке вы используете (поскольку он не может указывать из расширения файла, когда - это нет файла), и смена c++
на c++-header
означает, что мы хотим создать .gch-файл вместо .o файл.
Файлы .gch
, изготовленные таким образом, являются NOT бит для бит идентичны. Я не знаю достаточно о gch-файлах, чтобы рассказать вам, что может быть заметно отличается от их поведения. Однако, поскольку все, о чем вы заботитесь, это АСТ AST Clang, я готов поспорить, что с вами все будет в порядке. :)
Это была проблема, с которой я столкнулся, потому что я использовал $^в своем make-файле как ярлык. – VaelynPhi