문제

이전 질문에서 말했듯이 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를 생성하도록 강요합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top