我有一个错误,即使我有保护头,也不能将头文件包含在多个cpp中。
当从main中删除DatabaseManager的include时,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();
}
给出这些错误:
/代码/DB_RangePattern-build-desktop-Qt_4_8_1_in_PATH_System_Debug/。/DB_RangePattern/main.cpp:6:错误:首先在此处定义
集合2:ld返回1退出状态
最佳答案
你只发布了一行更大的错误,但我可以冒险猜测问题是什么。你似乎不确定你的班级是DataBaseManager
还是DatabaseManager
(注意大写字母的变化)。
此外,如果头文件与其他源文件在一起,请确保正在执行B
(不使用#include "DatabaseManager.h"
和<
)。