LLVM / Clang을 사용하여 특정 파일의 모든 경고 무시
내 iOS 프로젝트에 몇 가지 경고가있는 파일이 있으며 이러한 경고를 무시하고 싶습니다. 전체 프로젝트 (그 방법을 알고 있음)에서 경고를 비활성화하지 않고 특정 파일 만 비활성화하고 싶습니다. 그렇다면 특정 파일의 모든 경고를 완전히 무시하는 방법이 있습니까?
Xcode 4.2에서 LLVM 3.0과 Clang을 사용하고 있습니다.
clang 만 사용하는 경우 유지 관리하는 소스에 pragma 구문을 사용해야합니다 (프로그램을 적절하게 변경하여 경고를 제거 할 수 없다고 가정).
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wmultichar"
char b = 'df'; // no warning.
#pragma clang diagnostic pop
이러한 프로그램이 변경할 수없고 유지 관리 할 수없는 경우 전체가 아닌 파일에 대해 비활성화 할 경고를 지정해야합니다. 모두 비활성화하려면 파일 당 인수를 추가 할 수 있습니다 -w
. 소스가 변경되고 일부 경고는 다른 빌드 설정에 적용되거나 적용되지 않습니다. clang의 메시지는 생성 된 경고와 동일한 플래그를 알려줄 수 있습니다.
Xcode를 사용하여 파일의 빌드 플래그를 변경하려면 :
- 대상을 선택
- 빌드 단계 선택
- "소스 컴파일"단계에서 인수를 수정할 파일을 찾습니다.
- 편집 할 "컴파일러 플래그"셀을 두 번 클릭합니다.
저는 320 개의 코드를 많이 포함하는 프로젝트를 물려 받았고, 그 코드베이스는 가까운 장래에 프로젝트에서 해당 코드를 제거 할 것이기 때문에 수정에 관심이 없다는 몇 가지 경고와 정적 분석기 오류를 저에게 던졌습니다.
다음 컴파일러 플래그를 포함하여 특정 파일에 대한 정적 분석기 경고를 비활성화 할 수 있습니다.
-Xanalyzer -analyzer-disable-all-checks
이 파일을 -w와 결합하여 해당 파일에 대한 경고도 비활성화 할 수 있습니다. 이를 통해 해당 코드 기반에서 생성 된 30 개 정도의 경고로 인해 괴롭힘을 당할 필요없이 새로운 개발을 진행할 수있었습니다.
위의 지침 사용 : Xcode를 사용하여 파일의 빌드 플래그를 변경하려면 :
- 대상을 선택
- 빌드 단계 선택
- "소스 컴파일"단계에서 인수를 수정할 파일을 찾습니다.
- 편집 할 "컴파일러 플래그"셀을 두 번 클릭합니다.
- 경고 및 clang 경고를 억제하려면 "-w -Xanalyzer -analyzer-disable-all-checks"를 추가하십시오.
저스틴의 대답의 도움으로 이것은 당신이하는 방법입니다
1. 경고 이름을 찾습니다.
제 경우에는 conversion
2. 파일 별 컴파일러 플래그 빌드 단계 추가
필터를 사용하여 컴파일 소스에서 파일 이름을 찾으십시오. -Wno-[error name]
예를 들면 다음과 같습니다.-Wno-conversion
특정 대상-> 빌드 설정을 선택하고 모든 경고 금지를 검색하고 YES로 설정할 수 있습니다. 이 대상에 대한 경고를 비활성화합니다. cocoapods와 함께 JSONKit과 같은 일부 코드를 사용하고 컴파일러가 경고에 대해 어떻게 울고 있는지보고 싶지 않은 경우 유용 할 수 있습니다. :)
참고 URL : https://stackoverflow.com/questions/7897429/ignore-all-warnings-in-a-specific-file-using-llvm-clang
'development' 카테고리의 다른 글
비동기 메서드가 값을 반환하도록하는 방법은 무엇입니까? (0) | 2020.11.06 |
---|---|
실용적인 스타일의 실용적인 용도는 무엇입니까? (0) | 2020.11.06 |
ID (자동 증가) 열이있는 BULK INSERT (0) | 2020.11.06 |
기본 인증과 함께 Fiddler를 사용하여 RESTful WebAPI에 액세스 (0) | 2020.11.06 |
WebStorm에서 가져 오기를위한 경로 별칭 (0) | 2020.11.06 |