我正在开发自定义库,我希望用户可以通过添加以下内容来使用它:
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/