Подтвердить что ты не робот

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

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

cc1: warnings being treated as errors

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

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

4b9b3361

Ответ 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 параметры компилятора могут вызвать его, проверьте, используются ли они в настройках компилятора.