2009-04-23 63 views
9

有一个包含SomeLib.pro文件:如何在qt中为qmake指定库文件依赖关系?

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

然后在依赖SomeApp.pro:

.. 
debug:LIBS += -lSomeLib_debug 
.. 

我怎么能强迫SomeApp建立,如果我在QMAKE感动SomeLib?

+1

我利用qtcreator的。因此,我希望在.pro文件中提供解决方案。 – 2009-04-23 13:17:57

回答

15

这是丑陋的,因为你需要给出确切的库文件名,但这应该工作:

TARGETDEPS + = libfoo.a

+0

太棒了!正是我需要的! – 2009-04-24 00:50:36

0

当然,这是不可能的,你是在谈论使用qmake做反向依赖查找?所以你想在库A改变之后建立应用B(以及任何其他依赖库A的应用)?

这有点像说如果vbrun300.dll更新重新编译所有的Visual Basic应用程序?

1

qmake不提供此功能。

相反,把你的应用程序和lib子目录,然后在看起来像这样它们的父目录中创建一个Makefile:

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

FRC: 

然后总是从这个目录中运行make

+1

我正在使用qtcreator。因此,我希望在.pro文件中提供解决方案。 – 2009-04-23 13:32:11

2

在回答查希尔的评论,这或许值得指出的是,说明这如果使用DLL,qmake文件中的依赖关系是不必要的,但如果您的exe依赖于静态库,那么必需

1

我用:

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

它的工作原理,但笨拙的,因为它是必要指定完整路径库,这是每一个操作系统/编译器不同。

相关问题