我有一个错误,我不能在多个cpp中包含我的头文件,即使我有防护标头。 从main中删除DatabaseManager的包含时,ccode构建得很好
这是头文件:
#ifndef DATABASEMANAGER_H
#define DATABASEMANAGER_H
#include <QSqlDatabase>
#include <QSqlQuery>
class DatabaseManager
{
private:
QSqlDatabase PatternLibrary;
QSqlQuery query;
public:
DatabaseManager();
};
#endif
这是.cpp:
#include "DatabaseManager.h"
#include <QSqlError>
#include <QDebug>
DatabaseManager::DatabaseManager()
{
}
这是主要的:
#include "DatabaseManager.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
DatabaseManager x;
MainWindow w;
w.show();
return a.exec();
}
给出这些错误:
/ Code / DB_RangePattern-build-desktop-Qt_4_8_1_in_PATH_ 系统 _Debug /../ DB_RangePattern / main.cpp:6:错误:首先在这里定义
collect2:ld返回1退出状态
答案 0 :(得分:1)
你只发布了一行更大的错误,但我可以猜测问题是什么。您似乎不确定您的课程是DataBaseManager
还是DatabaseManager
(请注意资本B
的变化)。
此外,如果您的标题文件包含其余源文件,请确保您正在执行#include "DatabaseManager.h"
(不使用<
和>
)。
答案 1 :(得分:0)
我很确定QSqlDatabase使用/包含QSqlError,因为它有一个已定义的公共函数
QSqlError lastError () const
和重新定义将来自您的包含QSqlError