program story

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

inputbox 2020. 10. 17. 10:27
반응형

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


문제는 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컴파일러 옵션은 사람들이 컴파일러 설정에서 사용하는 경우는, 확인하십시오 발생할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/11561261/how-to-compile-without-warnings-being-treat-as-errors

반응형