我有一个错误,即使我有保护头,也不能将头文件包含在多个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"<)。

08-15 23:11