4

我正在开发自定义库,我希望用户可以通过添加来使用它:

CONFIG += mylib

到他们的专业档案。这可以通过将 mylib.prf 文件安装到 %QTDIR%/mkspec/features 来完成。我已经在Qt Mobility项目中查看了如何创建和安装这样的文件,但是我想做不同的一件事。

如果我正确理解了 Qt Mobility 的 pro/pri 文件,在示例项目中,他们并没有真正使用 CONFIG += 移动性,而是添加 QtMobility 源以包含路径并与主库项目共享 *.obj 目录。对于我的库,我希望有尽可能独立项目的示例,即一旦编译和安装 MyLib 就可以从任何地方编译的项目。

我有以下目录结构:

mylib
  |
  |- examples
  |- src
  |- tests
  \- mylib.pro

似乎实现我上面描述的最简单的方法是像这样创建 mylib.pro :

TEMPLATE = subdirs
SUBDIRS += src
SUBDIRS += examples
tests:SUBDIRS += tests

并且在构建 src 之后以某种方式强制调用“cd src && make install”。做这个的最好方式是什么?

当然,欢迎在示例编译之前对自动库部署提出任何其他建议。

4

1 回答 1

1

您可以创建另一个目标并将其添加到 SUBDIRS 变量中,如果您意识到普通的 .pro 文件也可以是目标,那么它会很好地工作。我会建议这样的事情

TEMPLATE = subdirs
CONFIG += ordered

SUBDIRS += src
tests:SUBDIRS += tests
SUBDIRS += src/install.pro
SUBDIRS += examples

在这种情况下,我通过配置变量添加确保子目录目标将按顺序执行。我将测试编译移到了安装之前,这对我来说很有意义——您需要在继续安装之前测试代码是否正常工作。重要的补充是直接链接到源目录中的 install.pro 文件。(如果你想保持 src 更干净,你也可以将它放在本地目录中。)在那里,你应该有你的命令来安装你想要安装的组件。

在这种情况下,我发现将源和标头列表分离到一个文件中通常会有所帮助,该文件可以包含在多个 .pro 文件中,例如:

src/sources.pri:

HEADERS += foo.h
SOURCES += foo.c

src/src.pro

include(sources.pri)
#...

src/install.pro

include(sources.pri)
#...
于 2010-05-14T15:17:25.303 回答