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 自动生成的表单提供了错误的源代码文件路径的主要内容,如果未能解决你的问题,请参考以下文章
qt项目找不到插件 - 通过qmlproject文件中的importPaths设置?
qmake.exe是在Qt安装编译时生成的,里面内嵌了Qt相关的一些路径(最简单的方法是保持一样的安装路径,最方便的办法是设置qt.conf文件)