Qt 5.0,包括个人标题问题
Qt 5.0 including personal header issues
看,我对用Qt在c++中编程有点陌生,所以我在win 7 64位上下载了5.0版本。我制作了一个名为Mafentre的类,并实现了它的代码,它看起来很完美,但当我尝试运行主程序时,它说C: \Users\Zbart3i\Downloads\Programs\test\main.cpp:3:错误:C1083:无法打开包含文件:'Mafentre.h':没有这样的文件或目录
这是我的专业代码:
SOURCES +=
main.cpp
mafenetre.cpp
QT+=widgets
HEADERS +=
mafenetre.h
这是Mafentre.h:的代码
#ifndef MAFENETRE_H
#define MAFENETRE_H
include < QtWidgets>
class Mafenetre:public QWidget
{
public:
Mafenetre();
private:
QPushButton *m_bouton;
};
#endif // MAFENETRE_H
这是Mafentre的网站:
#include "mafenetre.h"
Mafenetre::Mafenetre():QWidget()
{
setFixedSize(300,150);
m_bouton=new QPushButton("pimp mon bouton",this);
m_bouton->setFont(QFont("monotype corsiva",15));
m_bouton->setCursor(Qt::PointingHandCursor);
}
和main.cpp
#include< QtWidgets/QApplication>
#include< QtWidgets>
#include< Mafenetre.h>
void main(int argc, char *argv[])
{
QApplication app(argc, argv);
Mafenetre fenetre;
fenetre.show();
app.exec();
}
在C++中,应该使用#include"name">,而不是#include(引号而不是三角括号(,因为它们有不同的含义。
#include在安装库(包括标准库(的某些目录中查找。#include"name">首先在项目的文件夹中查找,然后检查其他目录。
好吧,从技术上讲,准确地说,它们在哪个文件夹中查找,并且按照一个顺序,是编译器特定的。
此:
#include <Mafenetre.h>
应该是这样的:
#include "Mafenetre.h"
阅读:
MinGW#包括搜索目录
默认搜索的其他目录
目录的最小列表,如所述标识上面提到的指定了默认情况下将被搜索的唯一位置,用于系统头文件或与用户安装的关联的头图书馆;然而,有一个例外。敏锐的读者可能注意到include文件搜索路径在顺序列表,其中第二个与第一个串联;但是,第一个,标识为#include"…"搜索列表似乎是空的。事实上,这种明显的空虚可能误导除非用户在调用时指定"-I-"选项GCC,此列表只包含一个目录:包含#include"file"指令的源文件存在。
请注意,这一个附加目录不会搜索用#include指令的
#include <file>
形式指定的头;它仅适用于使用指令的CCD_ 2形式指定的那些标头
并确保您的"Mafentre.h"文件与您的main.cpp文件位于同一文件夹中。否则,您需要执行#include"folderPath/fileName.h",并将路径添加到.pro文件中的SOURCES或HEADERS变量。
还要确保拼写相同,并使用正确的大小写——有时很重要,有时不重要。
如果您仍然有问题,请尝试编译一个仅由一个main.cpp组成的简单项目,以确保所有内容都安装正确。
您确定包含了正确的标题吗。此外,我没有看到您在头文件中使用QObject宏。应该是这样的:
Mafentre.h:
#ifndef MAFENETRE_H
#define MAFENETRE_H
#include <QWidget>
class Mafenetre : public QWidget
{
Q_OBJECT
public:
explicit Mafenetre(QWidget *parent = 0);
signals:
public slots:
};
#endif // MAFENETRE_H
Mafentre.cpp:
#include "mafenetre.h"
Mafenetre::Mafenetre(QWidget *parent) :
QWidget(parent)
{
}
最后你main.cpp应该是这样的,检查标题:
......
#include "mafenetre.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Mafenetre m;
m.show();
return a.exec();
}
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 标题与标准标题具有相同名称但大小写不同的问题
- 为什么#Define会在标题中引起问题
- QHeaderView::ResizeToContent在QTableView中垂直标题的性能问题
- Visual SDKDDKVER.H缺少,但是安装了WinSDK?(C 标题问题)
- 标题文件问题中的类定义
- C++:标题问题
- 我在function.cpp文件中有我的标题问题
- Qt 5.0,包括个人标题问题