3

いくつかの共有ライブラリがあるコードベースがあります。たとえば、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.proQT += xml

(この質問の理由は、他のものに依存する他のライブラリがあるとしましょう...たとえば依存関係のような依存関係をQt/Qmakeに任せたいと思いますQt += xml。)

4

1 に答える 1

2

qmake を使用すると、独自の構成機能を作成できます。(最後の段落)

したがって、独自の機能を作成し、lib1 リンク コードをそこに移動できます。ここに追加できQT+=xmlます。そして、app.proあなたはただ書くでしょうCONFIG += lib1

于 2012-09-19T16:59:40.063 に答える