Qt 애플리케이션이 있습니다. 파일은 .pro
이고 TEMPLATE = app
입니다. 프로젝트의 하위 폴더 중 하나는 또 다른 Qt 프로젝트의 자식 서브 모듈입니다. 라이브러리의 컬렉션에는 .pro
파일 (TEMPLATE = subdirs
)이 있습니다. 독립 프로젝트가 잘 컴파일 .lib
파일을 생성다른 Qt 프로젝트를위한 서브 모듈로 Qt 프로젝트
project/
app.pro (TEMPLATE = app)
stuff/
libs/ <-- git-submodule
libs.pro (TEMPLATE = subdirs)
lib1/
lib1.pro (TEMPLATE = lib)
lib2/
lib2.pro (TEMPLATE = lib)
libs
등 : 같은
그래픽으로 같습니다. 그러나이 경우에 app.pro
의 은 을에 서브 디렉토리로 포함시키고 싶지만, subdirs
은 아니지만 app
입니다. 어쩌면 SUBDIRS += askelib
을 app.pro
에 쓰려는 시도가 아무런 효과가 없었던 것일 수 있습니다. 모두 내 목표는 app.pro
의 빌드 폴더 안에 .lib
개의 파일을 가져 오는 것입니다. libs
은 내 목표를 달성하기 위해 libs
프로젝트 내부에서 변경해야하는 것이 없기 때문에 git-submodule이라는 것을 강조합니다.
app.pro
의 TEMPLATE
에서 subdirs
으로 변경하면 작동하는 것으로 알고 있습니다. 편집
subdirs_proj/
app/
libs/
대신
app/
libs/
: :하지만 정말 프로젝트 계층 구조는 다음 다른 중첩 수준을 달성하기 때문에이 일을 더 어렵게 만들 것이기 때문에 무엇을 원하는 아니다 이 clerify 내 이유 :
제 목표는 프로젝트 트리를 최대한 명확하게 만드는 것입니다. github에서 프로젝트를 복제 할 때 디렉토리에 들어가고 최상위 수준에서 app.pro
을 확인하십시오. 모든 것이 명확하고 쉽고 아름답습니다. 그리고 당신이 이상한 subdirs.pro
상단에 보이지만 실제 프로젝트는 app
하위 디렉토리에 있습니다. 그리고 여러분의 이름이 app
및 libs
과 같이 명백하지 않은 경우 주 응용 프로그램 하위 폴더를 라이브러리 하위 폴더와 혼동 할 가능성이 있습니다.하지만 torpedo
과 같은 것입니다 및 helios
. 희망은 내 생각을 분명히합니다 :)
샘플 리포를받을 수 있습니까? –
@TarunLalwani 네, 물론, [this one] (https://github.com/AskePit/Memory)입니다. 여기에'subdirs', 라이브러리 디렉토리와'src' 디렉토리 인 맨 위에'Memory.pro'가 있습니다. 이전에는 라이브러리 사용 전에'src' 디렉토리에 필요가 없었으며'Memory.pro'는 실제 응용 프로그램의'pro' 파일이었습니다. 어느 것이 더 편리 했습니까? –
환경 변수를 사용하는 방법은 어떻습니까? 환경 변수를 사용하여'TEMPLATE = $$ (TEMPLATE_ENV)'와 같은 값을 얻고, 그 값이 [empty]이면 (https://stackoverflow.com/questions/13803893/test-if-a-variable-is) -empty-and-give-default-value-of-qmake)를 사용하면 기본값을 지정할 수 있습니다. 그런 다음 기본 프로젝트를 빌드하는 동안 해당 환경 변수를 내보내고 참조 라이브러리 프로젝트의 값을 대체 할 수 있습니까? 나는 qmake 전문가가 아니므로 일부 가정은 틀릴 수도 있지만 이것이 의미가 있는지 알 수 있습니다. –