簡體   English   中英

如何在Qt中為qmake指定庫文件依賴?

[英]How do a specify a library file dependency for qmake in Qt?

有一個包含以下內容的SomeLib.pro文件:

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

然后在依賴SomeApp.pro中:

..
debug:LIBS += -lSomeLib_debug
..

如果我在qmake中觸及SomeLib,如何強制構建SomeApp?

這很難看,因為你需要提供確切的庫文件名,但這應該有效:

TARGETDEPS + = libfoo.a

如果單擊應包含庫的項目的上下文菜單中的“添加庫...”,QT Creator將執行此工作。

這些變量會自動為您配置:

  • LIBS
  • INCLUDEPATH
  • DEPENDPATH
  • PRE_TARGETDEPS

另見http://doc.qt.digia.com/qtcreator-2.1/creator-project-qmake-libraries.html

回答Zahir的評論,或許值得指出的是,如果使用DLL,在qmake文件中聲明這種依賴是不必要的,但如果你的exe依賴於靜態庫則必不可少

我用了:

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

它很有用,但是很笨拙,因為必須指定庫的完整路徑,這對於每個操作系統/編譯器都是不同的。

qmake不提供此功能。

相反,將您的app和lib放在子目錄中,然后在其父目錄中創建一個類似於下面的Makefile:

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

FRC:

然后始終從此目錄運行make

肯定是不可能的,你在談論使用qmake進行反向依賴查找? 所以你想要的是在你對庫A進行更改之后構建應用程序B(以及依賴於庫A的任何其他應用程序)嗎?

如果更新vbrun300.dll,這有點像重新編譯所有可視化基本應用程序?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM