문제

QT로 작성된 소프트웨어 프로젝트에 참여하고 Linux의 Qmake 및 GCC로 구축되었습니다. 우리는 품질이 상당히 낮고 많은 경고를 자극하는 타사 도서관에 연결해야합니다. 소스 코드에서 -w -wall을 사용하고 싶지만 -W를 불쾌한 타사 라이브러리로 전달하여 콘솔에 노이즈와 혼란이 없어 코드 품질에 집중할 수 있습니다.

Qmake에서는 특정 파일 및 라이브러리에 CFLAGS/CXXFLAGS를 조건부로 추가하는 방법이 있습니까?

도움이 되었습니까?

해결책

Jonathan, 문제는 소스 파일이 타사 라이브러리의 헤더 파일을 포함하는 곳이며 후자의 경고를 끄고 자한다고 생각합니다.

Kevin, 나는 당신이 Pragmas를 사용하여 경고를 통제 할 수 있다고 생각합니다. GCC 진단 pragmas

타사 파티 Libs의 #includs 전후에 추가 할 수 있습니다.

다른 팁

-isystem을 사용하여 라이브러리를 포함 시키면 어떨까요?

프로젝트 파일에서 예를 들어 :

QMAKE_CXXFLAGS += -isystem /usr/local/boost_1_44_0

케빈,

qmake CONFIG+=debug QMAKE_CXXFLAGS_WARN_ON=-w QMAKE_CFLAGS_WARN_ON=-w

해야합니다 (원하는 경우 config+= 릴리스 사용 ...)

일반적으로 자신의 코드에서 별도의 디렉토리로 타사 라이브러리를 빌드하므로 다른 MakeFile을 갖기 때문에 해당 컴파일에 다른 플래그 세트를 넣을 수 있습니다.

타사 라이브러리 코드를 자신의 코드와 혼합 한 경우 유지 보수 악몽에 대한 스스로를 설정했습니다.

Martin은 포함 디렉토리를 추가로 추가했습니다

QMAKE_CXXFLAGS += -isystem ...

각 헤더에서만 경고를 억제합니다. 프로젝트의 소스 파일 (또는 프로젝트 전체)에 대한 경고를 비활성화하거나 #Pragmas 또는 Wrappers 파일을 엉망으로 만들 필요가 없습니다.

QTCreator를 사용하는 경우 여전히 (즉, 추가로) 디렉토리를 INCLUDEPATH 따라서 인덱서가 헤더를 집어 올립니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top