使用TopLevel或者TopBuildDir
简述
当工作在复杂的基于qmake的有多个子目录的项目时,拥有一对top_srcdir和top_builddir变量是非常方便的,举例来说:
INCLUDEPATH = $$top_srcdir/include
LIBS= -L$$top_builddir/lib -lmylib
include($$top_srcdir/path/to /config.pri)
qmake提供出开箱即用的变量PWD和OUT_PWD,但这些变量指向正在处理的当前.pro / .pri文件及其构建规范,这意味着它们会在递回子目录时更改为它们。
通过自己定义TOP_SRCDIR和TOP_BUILDDIR来解决此限制的方法,或者在构建之前由脚本生成它们。但所有这些技巧都需要手动步骤,这对于只想在Qt Creator中打开项目并点击“构建”按钮,这对用户来说不好。
Qt4解决方法
.qmake.cache.in 文件
.qmake.cache.in文件,从技术上讲,它是一个.pri文件,该文件会自动包含在项目包含的每个.pro文件中,包括子目录中的文件。 这是定义适用于所有.pro文件的