拥有包含以下内容的SomeLib.pro文件:
CONFIG += debug
TEMPLATE = lib
TARGET = SomeLib
..
然后在依赖的SomeApp.pro中:
..
debug:LIBS += -lSomeLib_debug
..
如果我在qmake中触及SomeLib,如何强制构建SomeApp?
答案 0 :(得分:16)
这很难看,因为你需要提供确切的库文件名,但这应该有效:
TARGETDEPS + = libfoo.a
答案 1 :(得分:3)
如果您在应包含库的项目的上下文菜单中单击“添加库...”,QT Creator将执行此工作。
为您自动配置这些变量:
另见http://doc.qt.digia.com/qtcreator-2.1/creator-project-qmake-libraries.html
答案 2 :(得分:2)
在回复Zahir的评论时,或许值得指出的是,如果使用DLL,则说明在qmake文件中这种依赖是不必要的,但如果你的exe依赖于静态库,则必需。
答案 3 :(得分:1)
qmake
不提供此功能。
相反,将您的app和lib放在子目录中,然后在其父目录中创建一个看起来像这样的Makefile:
all: FRC
cd Somelib && qmake && $(MAKE)
cd SomeApp && qmake && $(MAKE)
FRC:
然后始终从此目录运行make
。
答案 4 :(得分:1)
我用过:
POST_TARGETDEPS += c:/open-en/lib/win32mingw/libosal_based.a
它有效,但是很笨拙,因为必须指定库的完整路径,这对于每个操作系统/编译器都是不同的。
答案 5 :(得分:0)
肯定是不可能的,你在谈论使用qmake进行反向依赖查找?所以你想要的是在你对库A进行更改之后构建应用程序B(以及依赖于库A的任何其他应用程序)吗?
这有点像说如果更新vbrun300.dll会重新编译所有可视化基础应用程序吗?