문제는 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