[c] 경고를 오류로 처리하지 않고 컴파일하는 방법은 무엇입니까?

문제는 Windows에서 잘 컴파일되는 동일한 코드가 Ubuntu에서 컴파일 할 수 없다는 것입니다. 이 오류가 발생할 때마다 :

cc1: warnings being treated as errors

이제는 큰 코드 기반이며 모든 경고를 수정하는 것을 좋아하지 않습니다.

경고에도 불구하고 성공적으로 컴파일 할 수있는 방법이 있습니까?



답변

물론 -Werror입니다. 설정된 위치를 찾아 해당 플래그를 제거하십시오. 그러면 경고는 경고 일뿐입니다.


답변

를 사용하여 모든 경고를 처리 할 수 ​​있습니다 -Wno-error. 오류로 처리하지 않으려는 경고의 이름은 -Wno-error=<warning name>where 를 사용하여 처리되는 특정 경고를 만들 수 있습니다 <warning name>.

모든 경고 를 완전히 비활성화 하려면 -w(권장하지 않음)을 사용하십시오.


출처 : http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Warning-Options.html


답변

이 게시물에서-Werror 제안한대로 Make 또는 CMake 파일에서 제거


답변

Linux 커널을 컴파일하는 경우. 예를 들어, “사용되지 않지만 설정 변수”라는 경고를 비활성화하려는 경우 오류로 처리됩니다. 문을 추가 할 수 있습니다.

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

Makefile에서


답변

모든 유용한 제안에 감사드립니다. 마침내 내 코드에 경고가 없는지 확인했지만 다시 sqlite3에서이 경고를 받았습니다.

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

다음 CFLAG를 추가하여 수정했습니다.

-fno-strict-overflow


답변

-Wall그리고 -Werror컴파일러 옵션은 사람들이 컴파일러 설정에서 사용하는 경우는, 확인하십시오 발생할 수 있습니다.


답변

해결책:

CFLAGS=-Wno-error ./configure