qt - 如何为Qt项目的一个子目录调用make install

标签 qt qt4 qmake make-install

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

CONFIG += mylib

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

如果我正确理解了 Qt Mobility 的 pro/pri 文件,那么在示例项目中,它们并没有真正使用 CONFIG +=mobility,而是添加 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”。做这个的最好方式是什么?

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

最佳答案

您可以创建另一个目标并将其添加到 SUBDIRS 变量中,如果您意识到普通的 .pro 文件也可以作为目标,则该方法运行良好。我会建议这样的

TEMPLATE = subdirs
CONFIG += ordered

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

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

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

src/sources.pri:
HEADERS += foo.h
SOURCES += foo.c

src/src.pro
include(sources.pri)
#...

源代码/安装.pro
include(sources.pri)
#...

关于qt - 如何为Qt项目的一个子目录调用make install,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2829763/

相关文章:

c++ - 用枚举填充 QMenu

qt - 如何在 Qt 中即时翻译语言

c++ - 如何使用socket编程获取系统日期和时间

c++ - 如果动态和静态版本都存在,如何告诉 qmake 使用静态库?

c++ - Qt4:访问父类的最佳方式(1级,2级......)

c++ - QString::from Char Array 给出了奇怪的字符

c++ - 在 C++ 中制作 QPushButton

c++ - Qt 显示超大富文本的最佳方式?

c++ - qt-creator 缺少 mac 上的 qmake

makefile - 如何强制 make 仅生成递归作业