Arch: 모든 경고는 오류로 간주됩니까?

Arch: 모든 경고는 오류로 간주됩니까?

make드라이버를 다운로드 하려고 하는데 ,xf86-비디오-armsoc, 아치 리눅스에서. 그러나 구성으로 인해 make드라이버가 모든 컴파일러 경고를 오류로 처리하므로 드라이버를 컴파일할 수 없습니다. 이 기능을 비활성화하는 방법이 있습니까?

발생한 오류를 읽었으며 모두 경고처럼 보입니다. , 및 storage of 's' isn't known와 같은 것들은 implicit declaration of function모두 무시할 수 있는 것입니다.nested extern declarationunused variable

답변1

-Werror오류인 경고는 일반적으로 컴파일러에 전달된 결과입니다. 개발자는 아직 개발 중이거나 미션 크리티컬 소프트웨어에 있기 때문에 버그가 얼마나 많은지, 버그가 남아 있는지 확인하기 위해 의도적으로 이 작업을 수행할 수 있습니다.

어쨌든, 어디인지 알아내야 합니다 -Werror. grep훌륭한 도구입니다. grep -lr Werror .드라이버 소스 코드 디렉토리에 있는 동안 전체 단어를 재귀적으로 grep하십시오(선행 대시는 중요하지 않음): .

그런 다음 각 파일에서 간단한 제거 스위치를 사용할 수 있습니다 sed -i 's@-Werror@@g' file.

찾다https://github.com/endlessm/xf86-video-armsoc/blob/master/src/Makefile.amERROR_CFLAGS에서 명시적인 설정을 보았 -Werror으므로 개발자는 치명적이지 않은 경고도 포착하기로 결정했습니다.

불행하게도 -Werror컴파일러는 매우 다양하기 때문에 릴리스 소프트웨어를 구축할 때 이는 쓸모가 없고 짜증나는 일입니다. 암시적 함수 선언 및 호환되지 않는 포인터/저장소 크기 불일치와 같은 간단한 사항에는 주의가 필요하지만 코드가 일반적이고 허용되는 표준을 따르도록 만드는 것은 개발자의 임무입니다.

관련 정보