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

Проблема в том, что тот же код, который хорошо компилируется в Windows, не может скомпилироваться на Ubuntu. Каждый раз, когда я получаю эту ошибку:

cc1: warnings being treated as errors 

Теперь это большая база кода, и мне не нравятся исправления всех предупреждений.

Можно ли успешно скомпилировать, несмотря на предупреждения?

Конечно, найдите, где -Werror установлен и удаляет этот флаг. Тогда предупреждения будут только предупреждениями.

Вы можете сделать все предупреждения обработаны как таковые, используя -Wno-error . Вы можете -Wno-error= определенные предупреждения как таковые, используя -Wno-error= где – это имя предупреждения, которое вы не хотите рассматривать как ошибку.

Если вы хотите полностью отключить все предупреждения, используйте -w (не рекомендуется).


Источник: http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Warning-Options.html

Если вы компилируете kernel ​​Linux. Например, если вы хотите отключить предупреждение, которое является «unused-but-set-variable», оно рассматривается как ошибка. Вы можете добавить заявление:

 KBUILD_CFLAGS += $(call cc-option,-Wno-error=unused-but-set-variable,) 

в вашем файле Makefile

Удалите -Werror из файлов Make или CMake, как указано в этом сообщении.

Спасибо за все полезные предложения. Наконец, я убедился, что в моем коде нет предупреждений, но снова получил это предупреждение от sqlite3:

 Assuming signed overflow does not occur when assuming that (X - c) <= X is always true 

который я исправил добавлением следующего CFLAG:

 -fno-strict-overflow 

-Wall и -Werror могут вызвать его, проверьте, используются ли они в настройках компилятора.