我正在尝试将我的项目从一台带有qt4
的计算机带到另一台我刚刚安装qt5
的计算机上,我遇到了一个非常奇怪的问题。
qmake突然找不到我的任何源文件或头文件。
这是一个极简主义的例子:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = untitled
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
INCLUDEPATH += $$PWD/Dir/
DEPENDPATH += $$PWD/Dir/
HEADERS += mainwindow.h \
f.h \
FORMS += mainwindow.ui
Dir/f.h
与untitled.pro
位于同一目录中的位置。我从qmake得到了这个输出:
05:18:45: Starting: "/opt/QtSDK/5.0.2/gcc/bin/qmake"
/home/martin/Projects/untitled/untitled.pro
-r -spec linux-g++ CONFIG+=debug CONFIG+=declarative_debug CONFIG+=qml_debug
WARNING: Failure to find: f.h
05:18:45: The process "/opt/QtSDK/5.0.2/gcc/bin/qmake" exited normally.
我完全不知道造成这种情况的原因。可能是什么问题?
编辑:
当我手动添加如下名称时:
HEADERS += Dir/f.h \
qmake
不会抱怨。
答案 0 :(得分:6)
当我在专业文件
中包含VPATH时,同样的问题得以解决例如: VPATH + = ../../libraries/ INCLUDE + = ../../ libraries /
同样使用qt 5,我们不需要在pro文件中包含DEPENDPATH
答案 1 :(得分:4)
您从未定义过PWD。双美元符号'$$'前缀表示先前在pro文件中定义的qmake变量。在您的情况下,$$PWD
部分是完全没必要的。如果你完全删除它,一切都应该编译得很好。
修改:此外,they quietly changed DEPENDPATH
behavior in Qt 5。从Qt 5开始,qmake
现在默认使用INCLUDEPATH
来查找SOURCES
和HEADERS
(config += depend_includepath
)。只需放下DEPENDPATH
行就可以了。
INCLUDEPATH += "Dir"