いくつかの共有ライブラリがあるコードベースがあります。たとえば、LIB1 は、APP1 が必要とする (依存する) ある種の処理を行います。
qmake *.pro ファイルは次のようにセットアップされます。TEMPLATE=subdirs
サブディレクトリとして APP1 と LIB1 をリストするルート *.pro が 1 つあります。
LIB1.pro:
TARGET = LIB1
TEMPLATE = lib
QT += core
QT += xml
DESTDIR = path/to/libs/directory
SOURCES += \
File1.cpp \
FileN.cpp
HEADERS += \
File1.h \
FileN.h
APP1.pro:
#------ dependencies ------#
LIBS += -Lpath/to/libs/directory
# LIB1
INCLUDEPATH += path/to/libs/directory/LIB1lib
DEPENDPATH += path/to/libs/directory/LIB1lib
LIBS += -lLIB1
HEADERS = \
FileNplus1.h \
FileM.h
SOURCES = \
FileNplus1.cpp \
FileM.cpp
問題は、ルート *.pro ファイルをコンパイルすると、LIB1 はコンパイルされますが、APP1.pro には .pro ファイルがないため、APP1 はエラーでコンパイルに失敗するQDomElement: No such file or directory
ことQT += xml
です。
私が使用しているハックがありますが、このハックを克服したいと思います。ハッキングには、次の行を APP1.pro に追加することが含まれます。
# add this to APP1.pro... let's it compile again
QT += xml
を追加するAPP1.pro
ために変更する必要なく、LIB1に依存するように qmake *.pro ファイルをセットアップする方法はありますか?APP1.pro
QT += xml
(この質問の理由は、他のものに依存する他のライブラリがあるとしましょう...たとえば依存関係のような依存関係をQt/Qmakeに任せたいと思いますQt += xml
。)