2012-07-23 127 views
1

我有一個Qt subdirs project結構如下:QtCreator:避免重新定義在Qt的子目錄LIBS項目

ExternalQtProject 
QtSubdirProjects 
    - GUI 
    - WebService 

WebService包含來自外部Qt工程LIBS(在WebService的.pro文件)

LIBS += -L<path to ExternalQtProject> 
LIBS += <some ExternalQtProject .obj files> 

GUI使用Web服務(在GUI .pro文件):

LIBS += -L<path to WebService> 
LIBS += <WebService .obj files> 

因此,基本上GUI正在使用WebService中的一個頭文件,該頭文件反過來使用來自ExternalQtProject的幾個頭文件。

問題:我收到鏈接的問題,直到我包括WebServiceLIBS條目以及在GUI,所以GUIExternalQtProject所有LIBS結束:

LIBS += -L<path to ExternalQtProject> # I want to avoid redefinition of this 
LIBS += <some ExternalQtProject .obj files> # I want to avoid redefinition of this 
LIBS += -L<path to WebService> 
LIBS += <WebService .obj files> 

由於有明確的相關性(GUI的> WebService-> ExternalQtProject),有沒有辦法避免子項目的重新定義LIBS

- 編輯1 -

How to use QMake's subdirs template?幫助我更好地構建我的項目,但仍未避免LIBS

回答

2

QMAKE的.pro文件的複製可以使用變量,包括其他文件。

你可以例如需要時使用SOMELIST = foo.obj bar.obj和LIBS + = $$ SOMELIST。

SUBDIRS模板用於列出不同的.pro文件,每個文件通常負責構建一個二進制文件或一個庫。