Qt 自动生成的表单提供了错误的源代码文件路径

Posted

技术标签:

【中文标题】Qt 自动生成的表单提供了错误的源代码文件路径【英文标题】:Qt auto generated form provides wrong path to source code files 【发布时间】:2014-01-12 02:26:17 【问题描述】:

我已将 qcustomplot.h/.c 文件添加到我的 Qt 项目中。它们位于:“QT_PROJECT_DIR/QCustomPlot/”。

每次我在 Qt Creator 中使用设计器并构建时,都会在 ui_mainwindow.h 中收到此错误:

error: ../../qcustomplot.h: No such file or directory
#include "../../qcustomplot.h"

这当然是真的,因为它位于:“QT_PROJECT_DIR/QCustomPlot/”

如何更改 Qt Designer 自动生成此路径的方式?

如果有帮助,这是我的 .pro:

#-------------------------------------------------
#
# Project created by QtCreator 2014-01-12T00:44:44
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets widgets opengl printsupport

TARGET = Test
TEMPLATE = app

SOURCES += main.cpp\
        mainwindow.cpp \
    QCustomPlot/qcustomplot.cpp

HEADERS  += mainwindow.h \
    QCustomPlot/qcustomplot.h

FORMS    += mainwindow.ui

CONFIG += mobility
MOBILITY = 

【问题讨论】:

请粘贴更多错误信息。哪个文件试图包含 qcustomplot.h? 我是 *** 的新手,没有足够的“声誉”,我无法向@Shea Belsky 添加评论。我按照他的指示解决了问题。我想他可能在回答中忘记了一步。这是我根据他的一步一步的: 步骤 1:打开包含 qcustomplot 项的 ***.ui 文件。第 2 步:右键单击 qcustomplot 项目并单击“PROMOTED WIDGETS”!步骤 3:双击 QCustomPlot 的路径,然后将其从 ../../customplot 更改为 QCustomPlot/qcustomplot.cpp。就像这样:enter image description here 最后,t 【参考方案1】:

您的包含似乎是错误的:

#include "../../qcustomplot.h"

由于您没有将 QCustomPlot 文件夹添加到您的 INCLUDEPATH,因此您需要包含该文件,如下所示:

#include "QCustomPlot/qcustomplot.h"

或者,您可以按如下方式更改INCLUDEPATH

INCLUDEPATH += $$QT_PROJECT_DIR/QCustomPlot/

然后你可以在没有丑陋的../../ 相对引用的情况下包含标题,如下所示:

#include "qcustomplot.h"

在源文件和头文件本身中避免此类相对包含路径是一个经验法则,因为结构可以随时更改,或者在不同的机器上可能会有所不同,等等。由构建系统和包含路径更好地解决。

【讨论】:

我必须包含路径,因为自动生成的文件总是创建我在问题中显示的路径。【参考方案2】:

我遇到了同样的问题,已经解决了。

这是由xxx.ui中的qcustomplot对象的路径引起的。

第 1 步:打开包含 qcustomplot 项的 ***.ui 文件。

第 2 步:右键单击 qcustomplot 项

第三步:双击QCustomPlot的路径,将../../customplot改成QCustomPlot/qcustomplot.cpp

最后,ui_***.h 的标头可以自动包含QCustomPlot/qcustomplot.cpp,而不是../../qcustomplot.h

我的母语不是英语。如果您在我的回复中发现语法错误,请通知我。让我纠正一下。

【讨论】:

以上是关于Qt 自动生成的表单提供了错误的源代码文件路径的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu qt 生成可执行文件 在哪

qt 如何打开一个别人的工程?

qt项目找不到插件 - 通过qmlproject文件中的importPaths设置?

QT 资源重定义错误

CMake - 找不到“QT”提供的包配置文件

qmake.exe是在Qt安装编译时生成的,里面内嵌了Qt相关的一些路径(最简单的方法是保持一样的安装路径,最方便的办法是设置qt.conf文件)