9

有一个 SomeLib.pro 文件,其中包含:

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

然后在依赖的 SomeApp.pro 中:

..
debug:LIBS += -lSomeLib_debug
..

如果我在 qmake 中触摸 SomeLib,如何强制构建 SomeApp?

4

6 回答 6

16

这很难看,因为您需要提供确切的库文件名,但这应该可以:

TARGETDEPS += libfoo.a

于 2009-04-23T22:07:36.853 回答
3

如果您在应包含该库的项目的上下文菜单中单击“添加库...”,QT Creator 将完成这项工作。

这些变量会自动为您配置:

  • 图书馆
  • 包含路径
  • 依赖路径
  • PRE_TARGETDEPS

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

于 2013-05-20T08:19:43.407 回答
2

在回复 Zahir 的评论时,可能值得指出的是,如果使用 DLL,则在 qmake 文件中说明这种依赖关系是不必要的,但如果您的 exe 依赖于静态库,则这是必不可少的。

于 2009-05-10T13:53:37.367 回答
1

qmake不提供这种能力。

相反,将您的应用程序和 lib 放在子目录中,然后在其父目录中创建一个 Makefile,如下所示:

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

FRC:

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

于 2009-04-23T12:58:20.930 回答
1

我用了:

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

它可以工作,但是很笨拙,因为必须指定库的完整路径,这对于每个操作系统/编译器都不同。

于 2009-09-15T15:31:53.820 回答
0

这肯定是不可能的,你说的是使用 qmake 进行反向依赖查找?那么在您对库 A 进行更改后,您想要它构建应用程序 B(以及任何其他依赖于库 A 的应用程序)?

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

于 2009-04-23T12:47:26.027 回答