【问题标题】:qmake cannot locate any source or header filesqmake 找不到任何源文件或头文件
【发布时间】:2013-06-21 20:24:42
【问题描述】:

我正在尝试将我的项目从一台带有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.huntitled.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 不抱怨。

【问题讨论】:

  • 我不明白你为什么不明白。 =)。如果 f.h 在文件夹 Dir 中,那么您需要添加该文件的完整路径。这就是 HEADERS += Dir/f.h 起作用的原因。这有意义吗?
  • @Huytard 但我以前不需要这样做。我只需添加目录:DEPENDPATH += $$PWD/Dir/ 然后我不需要编写完整路径。为什么这突然一个问题让我很生气。

标签: qt qt5 qmake


【解决方案1】:

当我在 pro 文件中包含 VPATH 时,同样的问题解决了

例如: VPATH += ../../libraries/ 包括 += ../../libraries/

同样对于 qt 5,我们不需要在 pro 文件中包含 DEPENDPATH

【讨论】:

    【解决方案2】:

    您从未定义过 PWD。双美元符号“$$”前缀表示之前在 pro 文件中定义的 qmake 变量。在您的情况下,$$PWD 部分是完全没有必要的。如果你完全删除它,一切都应该编译得很好。

    编辑:另外,they quietly changed DEPENDPATH behavior in Qt 5。从 Qt 5 开始,qmake 现在在查找 SOURCESHEADERS (config += depend_includepath) 时默认使用您的 INCLUDEPATHs。只需删除DEPENDPATH 行,您应该会很好。

    INCLUDEPATH += "Dir"
    

    参考:Qmake variables in .pro files

    【讨论】:

    • 谢谢,但结果是一样的。
    • f.h 之后删除多余的\ 是否修复它?
    • 没关系。尝试完全删除 DEPENDPATH 行并阅读此链接:stackoverflow.com/questions/16769541/…
    • INCLUDEPATH 与查找 SOURCES/HEADERS 的文件无关,而是在编译时解析包含。 HEADERS += Dir/f.h 是要走的路。在 Qt4 中,DEPENDPATH 的事情可能是一个意外的副作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    相关资源
    最近更新 更多