2017-03-11 9 views
1

qmake의 기본 동작은 경로를 포함 할 프로젝트의 루트 경로를 추가하는 것입니다. Makefile에서 다음과 같은 것을 생성합니다 :qmake의 포함 경로에서 프로젝트의 루트 디렉토리를 제거하는 방법

INCPATH  = -I..\bug -I. -I..\..\Qt\Qt5.8.0\5.8\mingw53_32\mkspecs\win32-g++ 

여기서 "bug"는 프로젝트의 이름입니다. 나는 "나는 원하지 않아." 부품. 파일 .pro에서 어떻게 제거 할 수 있습니까?

INCLUDEPATH -= "." 

을하지만 아무것도 변경되지 않습니다 :

나는 시도했다.

자세한 내용 : 내 프로젝트는 Linux에서 잘 컴파일되지만 Windows (mingw)에서는 컴파일되지 않습니다. 심오한 연구 끝에 나는 표준 C++ 라이브러리 (string.h)에 어딘가에 "process.h"라는 파일이 있다는 것을 깨달았다. 문제는 내 프로젝트에서 정확히 같은 이름의 파일이 있다는 것입니다. 그리고 역설적으로 내 프로젝트의 파일이 표준 라이브러리의 헤더 (!!)에 포함되었습니다. 이 동작으로 인해 문자열 헤더 파일이 컴파일되지 않습니다.

+0

확실한 해결책은 당신의 프로젝트에서'process.h' 파일의 이름을 변경하는 것입니다. –

+1

@KubaOber 해결책이 아닙니다. 이 문제를 해결하는 방법입니다. – jaskmar

+0

그것은 논쟁의 여지가 있습니다. 다른 빌드 시스템에서도이 문제를 계속해서 반복적으로 실행할 것입니다. 일반적으로 프로젝트에서 인기있는 표준 헤더와 같은 이름의 파일을 갖는 것은 매우 나쁜 생각입니다. qmake에 집중하면 길을 걷어차는 것입니다 :) –

답변

1

appriopriate 설정 옵션이있다 :

CONFIG += no_include_pwd 
+0

안녕하세요, "비공개"QTBUG를 연구하고 제출해 주셔서 감사합니다. 실제로 작동하지만 내 프로젝트에서 무슨 일이 일어나고 있는지 혼란 스럽습니다. 프로젝트가 "버그"라고 불릴 때 나는 원래이 INCPATH를 가졌습니다. -I ../ bug -I ../ bug/src -I ../ bug -I. 내가 CONFIG 라인을 추가 한 후에 나는 다음과 같은 결과를 얻는다 : -I ../ bug/src -I ../ bug 왜 내가 원래 여러 개의 "-I ../ bug"경로를 가지고 있었는지? 그리고 CONFIG 옵션을 추가 한 후에도 (한 번) 여전히 그 이유는 무엇입니까? 나는 틀릴 수도 있지만 "- 나는 ../버그"는 "- 나."와 동일하지, 그렇지? – FrozenTarzan

+0

@FrozenTarzan 귀하의 * .pro 파일이 보이지 않습니다. 모든 대답은 내부에 있어야합니다. 새로운 질문을 물어보십시오 :) – jaskmar

+0

물론,하지만 당신은 여전히 ​​"뒤로 하나의 디렉토리를 가지고 프로젝트 디렉토리로 전달"이 변경된 후에 경로를 포함하고 있는지 알고 싶었습니다. 나는 단지 "-I ../ project_dir"경로에 대해 궁금해하고 있는데, 이것은 어떤 명령에서 오는 것으로 보인다. 니가 나 한테 말하면, 너는 변화 이후에 그 중 하나도 가지지 않았고 "- 나." 그리고 "-I ../ bug"그런 다음 새로운 질문을 엽니 다 :-) – FrozenTarzan