문제

나는 보통 다음과 같이 많이의 경고를 사용할 때 프로그래밍입니다.그러나 일부 라이브러리 코드가 포함되는 원인 경고(..,python,Qt,..).컴파일할 때는 gcc 내가 사용할 수 있습니다-isystem 대신-나는 침묵니다.할 수 있는 방법과 같은 작업을 수행합 MS 컴파일러가?나를 알고 경고#pragma 지만,저는 좋아하는 솔루션을 포함하지 않는 컴파일러 특정 코드입니다.나도 알고있는 해제 할 수 있습니다 특정한 경고,그러나는 내가 원하지 않는 것 중 하나.

BTW:isystem 해야의 이 질문,하지만 나는이 허용되지 않을 수행됩니다.

요약:보고 싶 모든 경고에 코드 no 경고를 외부로부터 코드입니다.

도움이 되었습니까?

해결책

로 2017-08-17 이 여전히 보이는 불가능합니다.

추가 기능을 요청하기:

https://developercommunity.visualstudio.com/content/problem/96411/impossible-to-ignore-warnings-from-system-librarie.html

업데이트 2018:

이 문제는 폐로 및에서 사용할 수 있는 표준 MS VS 설치[].블로그 포스팅에서 MS 팀을 통해 새로운 기능을[].

솔루션에서 MS 가동 가능합니다.할 수 있지만 차별화를 사용하여 경로에 당신은 당신 --isystem, 지만,예를 들어도를 사용하면 사용 여부 #include ""#include <>.블로그 글 읽기 가치가 모든 다양한 사용자 정의 포인트입니다.

마지막으로 경고를 사용할 수 있 또한 나에게 MS 대 플랫폼입니다.

다른 팁

이것은 이제 아래에 있습니다 /experimental:external /external:I system_include_path /external:W0. 보다 https://blogs.msdn.microsoft.com/vcblog/2017/12/13/broken-warnings-theory/ 자세한 내용은 더 자세히 설명합니다.

왜 MS가 이것을 집어 들지 않았는지 전혀 알 수 없습니다. 우리는 투표 만 시도 할 수 있습니다 https://visualstudio.uservoice.com/forums/121579-visual-studio-2015/suggestions/14717934-add-a-cl-exe-option-for-system-keaders-like-gcc-s

아니요, MSVC에는 없습니다 -isystem 동등한.


CL /의 출력 출력을 보시겠습니까? :

/WD 경고 n

/우리는 경고 n을 오류로 취급합니다

/WO 문제 경고 n 한 번

/w 설정 n에 대한 경고 레벨 1-4 세트

이것은 전체 프로젝트에 대한 경고를 비활성화합니다. QT를 사용할 때 #Pragma 경고를 사용하여 메인 헤더를 변경하고 다시 활성화하여 다시 활성화하여 내 자신의 출처에 대한 모든 경고를 볼 수있었습니다.

편집하다 저자는 그의 질문, 업데이트 된 답변을 편집했습니다. 컴파일러 플래그를 사용한 경고없이 경고 및 QT 코드로 코드를 가져올 방법이 없습니다.

위의 플래그는 파일 레벨에서도 적용 할 수 있으므로 QT 헤더를 포함하는 파일에 대해서만 경고를 비활성화 할 수 있지만 아직 해당 파일에서 자신의 코드에 대해 볼 수 없다는 것을 의미합니다.

그래서 나는 위의 답을 유지합니다. 그것은 예쁘지는 않지만, 그것이 유일한 방법이라고 확신합니다. QT 헤더의 시작과 끝에서 #pragma를 사용하십시오. QT 헤더를 변경하거나 (훨씬 더 못생긴), 다음과 같은 덜 침습적 인 방법을 선택하십시오.

//your source/header file
#include "shutuppqt.h"
#include <QString>
#include "enableallwarnings.h"

"shutuppqt.h"예

#ifdef MSVC
  #pragma warning ( disable : 4222 ) //or whatever warning Qt emits
#else
  //....
#endif

"enableallwarnings.h"예제

#ifdef MSVC
  #pragma warning ( enable : 4222 ) //or default instead of enable
#else
  //....
#endif
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top