2013-10-16 1 views
10

우분투 데스크톱에 scan-build/clang 버전 2.9를 설치했습니다. 거기서 make를 사용하여 C++ 소스 코드를 빌드합니다. 그것은 스캔 빌드 당신이 주면하게 사용하여 내장 된 프로젝트를 분석 할 것이라고 말했다으로clang 코드 분석을위한 scan-build 명령 사용

scan-build make 

에 있지만 한 후 나는 또한

을 시도

scan-build: Removing '/tmp/scan-build-2013-10-16-1' because it contains no reports. 

메시지를 참조

scan-build --use-c++=/use/bin/clang++ make 

Q1 - 내가 뭘 잘못하고있는/여기에 누락되었습니다. scan-build를 사용하여 모든 소스 파일을 분석하는 방법.

Q2 - 단일 소스 파일을 분석하는 데 사용할 수있는 옵션이 있습니까? clang++ --analyze myfile.cpp. 그러나 '치명적인'오류가 발견되지 않은 헤더 파일에 대한 오류를 제공합니다. 'my.h

헤더 파일이있는 폴더를 가리 키도록 분석하는 옵션은 무엇입니까?

Q2에 관해서는

답변

2

, 당신은 사용할 수 있어야합니다 :

scan-build clang++ -c myfile.cpp 

또는 당신은 무엇을 제안 :

clang++ --analyze myfile.cpp 

하지만 당신은 컴파일러에 대한 모든 포함 및 라이브러리를 알고 있는지 확인해야 (분석없이 myfile.cpp를 오브젝트 파일에 성공적으로 컴파일 할 수 있어야합니다). 여기에는 특히 -I 디렉토리가 포함됩니다.

HTML 보고서 파일의 대상 디렉토리를 지정하는 scan-build에 -o 옵션도 있습니다. 필요한 경우 하위 분석기의 "실행"을 나타내는 하위 디렉토리가 만들어집니다. 이 옵션을 지정하지 않으면 이미 알고있는 것처럼 /tmp에 디렉토리가 만들어져 보고서가 저장됩니다.

또 다른 유용한 옵션은 -v (verbose)이며, 이는 분석기가 실행할 수있는 오류를 인쇄해야합니다.

마지막으로, 최적화가 비활성화 된 디버그 빌드와 함께 분석을 사용해야하지만 더 중요한 것은 심볼이 제거되지 않은 부분입니다.

도움이 될지 확실하지 않은 경우 ...

+0

감사합니다. 제가 놓친 옵션이었습니다. 도움이되었습니다. – goldenmean

+0

현상금을 즐기십시오. thanks – goldenmean

+0

"scan-build clang ++ -c myfile.cpp"는 파일을 정적으로 분석하지는 않지만 컴파일, 빌드 및 링크하는 것은 언급해야합니다. – goldenmean

관련 문제