Как скомпилировать без предупреждений, считающихся ошибками?
Проблема в том, что тот же код, который хорошо компилируется в Windows, не может скомпилироваться на Ubuntu. Каждый раз, когда я получаю эту ошибку:
cc1: warnings being treated as errors
Теперь это большая база кода, и мне не нравятся исправления всех предупреждений.
Можно ли успешно скомпилировать, несмотря на предупреждения?
Ответы
Ответ 1
Спасибо за все полезные предложения. Наконец, я убедился, что в моем коде нет предупреждений, но снова получил это предупреждение от sqlite3:
Assuming signed overflow does not occur when assuming that (X - c) <= X is always true
который я исправил добавлением следующего CFLAG:
-fno-strict-overflow
Ответ 2
Конечно, найдите, где -Werror
установлен и удалите этот флаг. Тогда предупреждения будут только предупреждениями.
Ответ 3
Вы можете сделать все предупреждения обработаны как таковые, используя -Wno-error
. Вы можете сделать конкретные предупреждения как таковые, используя -Wno-error=<warning name>
, где <warning name>
- это имя предупреждения, которое вы не хотите рассматривать как ошибку.
Если вы хотите полностью отключить все предупреждения, используйте -w
(не рекомендуется).
Источник: http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Warning-Options.html
Ответ 4
Если вы компилируете ядро Linux. Например, если вы хотите отключить предупреждение, которое является "unused-but-set-variable", оно рассматривается как ошибка. Вы можете добавить выражение:
KBUILD_CFLAGS += $(call cc-option,-Wno-error=unused-but-set-variable,)
в файле Makefile
Ответ 5
-Wall
и -Werror
параметры компилятора могут вызвать его, проверьте, используются ли они в настройках компилятора.
Ответ 6
Удалите -Werror
из ваших файлов Make или CMake, как предложено в этом сообщении