2010-11-29 5 views
0

나는이 어리석은 문제에 화를 낼 것입니다. Qmake와 소스와 헤더에 별도의 폴더를 사용하여 만들기

src 
|--- sources 
     |--- one.cpp 
     |--- two.cpp 
     |--- sources.pro 
|--- headers 
     |--- one.h 
     |--- two.hpp 
     |--- headers.pro 
|--- src.pro 

내가 그 폴더에 모두 보이게하기 위해 모든 노력을하지만, 어떻게 든 그것을 작동하게 할 수 없습니다

나는 나무 같이했습니다. QMake에 대해 많이 알지는 못했지만 쉽지 않았습니다. 그리고 나는 틀렸다. 이 방법으로

 

QT += dbus 

CONFIG += warn_on 
DEFINES = QT_FATAL_WARNINGS QT_NO_DEBUG_OUTPUT 

devel { 
    DEFINES -= QT_NO_DEBUG_OUTPUT 
} 

OBJECTS_DIR += build 
MOC_DIR += build 

TARGET = example 

[...] 

TEMPLATE = subdirs 
SUBDIRS = sources \ 
      headers 

[...] 
 

그리고 sources.pro 및 headers.pro :

sources.pro

그래서 실제로 나는 src.pro이 방법으로 파일을 가진 결국

 

SOURCES = one.cpp \ 
      two.cpp 
 

headers.pro

 

HEADERS = one.h \ 
      two.hpp 
 

물론 문제는 아직 모든 것을 함께 볼 수 없다는 것입니다. 내가 너무 설명서를 보았다,하지만 난 롤을하지 않는 맹세

답변

2

내가 (긴 CMake 만세!)로 qmake를 사용 했어 이후 오랜만이야,하지만 당신은 단지 INCLUDEPATH 변수를 설정할 수 없습니다 즉, 당신의 .pro 파일에, 뭔가를 할 :

INCLUDEPATH += ./sources 
INCLUDEPATH += ./headers 
INCLUDEPATH += ../utils/include 
# (etc, etc.) 

그럼 그냥 지금처럼 sources 폴더에서 귀하의 SOURCES VAR의 진입 점 :

SOURCES = sources/one.cpp \ 
      sources/two.cpp 

I을 내가 왜 TEMPLATE = subdirs을 사용하고 있는지 분명하지 않습니다. 그것은 귀하의 경우에 필요한 것 같지 않습니다. TEMPLATE = app (또는 TEMPLATE = lib)을 사용하고 끝내시겠습니까? 이 같은 것 :

QT += dbus 
TEMPLATE = app 
TARGET = example 

INCLUDEPATH += ./sources 

SOURCES += sources/one.cpp \ 
      sources/two.cpp 
+0

감사합니다! 나는 방금 INCLUDEPATH + = sources \ headers (질문을 게시하기 전에 부분적으로 시도 했음)를 추가하고 소스 및 헤더 경로를 모든 파일 (sources/one.cpp headers/one.h)에 추가하여 문제를 해결했습니다. 하나의 고유 한 폴더로 보았을 것입니다 :) 고마워요! – eij

관련 문제