QMake를 사용하여 단일 프로젝트에서 여러 바이너리를 구축하는 방법은 무엇입니까?
문제
동일한 파일 세트에서 작동하는 작은 프로그램 세트로 구성된 작은 QT 앱 제품군을 작성하고 있습니다. 그들은 다음과 같이 구성됩니다.
/ app1/ main.cpp app2/ main.cpp app3/ main.cpp common/ project.h project.cpp somemore.h somemore.cpp appsuite.pro
내가 할 때 qmake && make
, 나는 다음 바이너리를 건설하기를 원합니다.
- APP1/APP1
- APP2/APP2
- APP3/APP3
어떻게 쓰나요? appsuite.pro
이렇게 일하기 위해?
나는 뭔가 들었습니다 .pri
파일이지만 내 "상황"에서 사용하는 방법을 알 수 없었습니다.
감사합니다.
JRH
해결책
이를 수행하는 한 가지 방법은 하위 디렉토리 당 .pro 파일을 갖는 것입니다.
appsuite.pro :
TEMPLATE = subdirs
SUBDIRS = common app1 app2 app3
app1.depends = common
app2.depends = common
app3.depends = common
app1/app1.pro :
TARGET = app1
SOURCES = main.cpp
INCLUDEPATH += ../common
LIBS += -L../common -lcommon
Common.pro 파일은 정적 라이브러리를 빌드 한 다음 바이너리에 연결할 수 있습니다.
Common/Common.pro :
TEMPLATE = lib
CONFIG = staticlib
SOURCES = project.cpp more.cpp
HEADERS = project.h more.h
다른 팁
한 가지 방법은 글로벌 프로젝트를 만드는 것입니다 appsuite.pro
, 이와 같이:
TEMPLATE = subdirs
SUBDIRS = app1 app2 app3
하위 프로젝트 app1.pro
그리고 app2.pro
공통/ 하위 디렉토리에 대한 종속성과 함께 해당 응용 프로그램만으로 만들어야합니다.
APP1이 APP2에 의존하는 경우 AppSuite.pro에 다른 종속성을 지정할 수도 있습니다.
app1.depends = app2
제휴하지 않습니다 StackOverflow