2012-07-23 7 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은 웹 서비스 (GUI의 .pro 파일)를 사용합니다.

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

기본적으로 GUIWebService에서 하나의 헤더 파일을 사용하며, 차례로 ExternalQtProject의 여러 헤더 파일을 사용합니다.

문제 : GUI에서뿐만 아니라 WebService에서 LIBS 항목을 포함 할 때까지 내가 그렇게 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) 은 서브 프로젝트 GUI에 대해LIBS 인 것을 피할 수있는 방법이 있습니까?

- 편집 - 1

How to use QMake's subdirs template?은 내가 더 나은 내 프로젝트를 구성하는 데 도움이,하지만 아직 변수를 사용하여 다른 파일을 포함 할 수 있습니다 LIBS

답변

2

qmake를 .PRO 파일의 중복을 피할 수 없습니다.

예 : 필요한 경우 SOMELIST = foo.obj bar.obj 및 LIBS + = $$ SOMELIST를 사용하십시오.

SUBDIRS 템플릿은 일반적으로 각각 하나의 바이너리 또는 하나의 라이브러리를 만드는 다양한 .pro 파일을 나열하는 데 사용됩니다.