2010-11-29 5 views
0

私はこの愚かな問題に怒っています。ソースとヘッダーに別々のフォルダを使用してQmakeとMakeを作成

私はこのようなツリーました:

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 
 

もちろん、問題はそれがまだすべてのものを一緒に見ないということです。私が(長いCMakeが生きる!)qmakeのを使用しなければならなかったが、あなただけのINCLUDEPATH変数を設定することはできませんので、それはしばらくしています

答えて

2

笑私もドキュメントを見て、私は、私はそれを得ることはありません誓う あなたの.proファイルで、すなわち、のような何かを:それからちょうどそのようなsourcesフォルダであなたのSOURCES Varのエントリを指し示す

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

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ヘッダ/ one.h)にソースとヘッダのパスを追加することで修正しました。 1つのユニークなフォルダとしてそれを見たでしょう:)ありがとう! – eij

関連する問題