문제

Somelib.Pro 파일이 포함되어 있습니다.

CONFIG  += debug
TEMPLATE = lib
TARGET = SomeLib
..

그런 다음 종속 SomeApp.pro에서 :

..
debug:LIBS += -lSomeLib_debug
..

Qmake에서 Somelib를 만지면 Someapp가 어떻게 건설하도록 강요 할 수 있습니까?

도움이 되었습니까?

해결책

정확한 라이브러리 파일 이름을 제공해야하기 때문에 추악하지만 다음과 같습니다.

TargetDeps += libfoo.a

다른 팁

QT Creator는 도서관을 포함 해야하는 프로젝트의 상황에 맞는 메뉴에서 "라이브러리 추가 ..."를 클릭하면 작업을 수행합니다.

이 변수는 자동으로 구성됩니다.

  • 리브스
  • 포함
  • 종속
  • pre_targetDeps

또한보십시오 http://doc.qt.digia.com/qtcreator-2.1/creator-project-qmake-libraries.html

Zahir의 의견에 대한 답변으로, Qmake 파일에서 이러한 종속성을 명시하는 것이 DLL을 사용하는 경우 불필요하다는 것을 지적 할 가치가 있지만 필수적인 exe가 정적 라이브러리에 의존하는 경우.

qmake 이 능력을 제공하지 않습니다.

대신, 앱과 lib를 하위 디렉터에 넣은 다음 부모 디렉토리에 다음과 같은 모습을 만드는 MakeFile을 만듭니다.

all: FRC
    cd Somelib && qmake && $(MAKE) 
    cd SomeApp && qmake && $(MAKE)

FRC:

그런 다음 항상 실행됩니다 make 이 디렉토리에서.

나는 사용했다 :

POST_TARGETDEPS += c:/open-en/lib/win32mingw/libosal_based.a

작동하지만 모든 운영 체제/컴파일러마다 다른 라이브러리로의 전체 경로를 지정해야하므로 서투른 것입니다.

확실히 가능할 수는 없습니다. Qmake를 사용하여 역 종속성 조회를 수행하는 것에 대해 이야기하고 있습니까? 그래서 당신이 원하는 것은 라이브러리 A를 변경 한 후 앱 B (및 라이브러리 A에 의존하는 다른 앱)를 구축하는 것입니다.

vbrun300.dll이 업데이트 된 경우 모든 시각적 기본 앱을 다시 컴파일하는 것과 비슷합니까?

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