QTCreator Project는 여러 Libs 및 1 개의 Exe
문제
이전 질문에서 말했듯이 VC ++에서 QTCreator로 QT 프로젝트를 포팅 할 계획입니다.
이 프로젝트는 4 개의 하위 프로젝트로 구성됩니다. 그 중 3 개는 Libs이고 마지막은 Exe를 만듭니다. 하위 프로젝트는 계층화되므로 각 레이어는 그 아래의 층에 컴파일 및 링크 시간 종속성을 갖습니다.
파일은 다음과 같이 구성됩니다.
root
lib1
lib2
lib3
main
QTCreator에서 각 하위 프로젝트를 처음부터 만들었습니다. 각 폴더에는 동일한 이름 (예 : lib1-> lib1.pro)의 프로 파일이 포함되어 있습니다. 이 접근법을 사용하여 실행 파일을 연결 해야하는 마지막 프로젝트를 제외한 모든 프로젝트를 제외한 모든 프로젝트를 구축했습니다. 프로 파일을 수동으로 편집하고 아래 코드를 추가하여 수정 한 링커 오류가 발생했습니다.
LIBS += ../path/lib1.a \
../path/lib2.a \
../path/lib3.a
지금 Lib3은 lib2와 lib1의 기호를 찾을 수 없다고 불평하는 것을 제외하고는 모두 괜찮습니다. lib2.pro 파일에 libs가 작동하지 않습니다.
QTCreator가 LIBS 및 실행 파일로 작동하는 방식을 얻지 못한다는 느낌이 들었습니다. 그러한 프로젝트를 어떻게 구성하여 올바르게 컴파일하고 링크 할 수 있습니까?
해결책
문제를 좀 더 작업 한 후 GCC 도구 체인의 경우 링커 매개 변수의 순서가 중요하다는 것을 기억했습니다.
Libs 항목을 뒤집는 것이 속임수를 만들었습니다.
다른 팁
답을 찾아서 기쁩니다. 추가 할 수도 있습니다.
CONFIG += ordered
루트 디렉토리에 .pro 파일에 ( 'subdirs'프로파일에서만 유효합니다). 그것은 qmake가 모든 상황에서 나열된 순서를 보존하는 makefiles를 생성하도록 강요합니다.