【发布时间】:2013-04-04 20:52:51
【问题描述】:
[已解决]这个问题在大约 5-6 次清理和重建时以某种方式自行解决,没有更改任何代码
我有一个带有默认构造函数的类,以及一个带有 8 个参数的构造函数。
我试图从另一个类调用构造函数并传递 8 个参数,但是当我尝试这样做时,我得到一个 LNK2019 Error。
但让我感到困惑的是,如果我调用默认构造函数,程序编译和运行都不会正常...一切都有正确的包含并且必须工作,因为我可以调用默认构造函数,我使用 QStrings 作为一些参数,但 QString 被包括在内,所以不可能是这样......任何其他人都知道为什么我会得到LNK2019 error 的构造函数接受参数而不是当它是默认参数时??
汽车.h
#include <QString>
class car
{
public:
car();
car(int car_id, QString something, QString something_else, QString something3, int an_int, int another_int, int another_int_i, QString something4);
};
汽车.cpp
car::car()
{
}
car::car(int car_id, QString something, QString something_else, QString something3, int an_int, int another_int, int another_int_i, QString something4)
{
}
显然我刚刚删除了上下文和值等,但对结构没有影响
数据库控制器.cpp
#include "DatabaseController.h"
#include "car.h"
void DatabaseController::DoSomething()
{
car *pcar = new car(0, "", "", "", 0, 0, 0, "");
}
interface.cpp
#include "DatabaseController.h"
void interface::on_btn_clicked()
{
DatabaseController DC;
DC.DoSomething();
}
完全错误:
DatabaseController.obj:-1: error: LNK2019: unresolved external symbol "public: __thiscall car::car(int,class QString,class QString,class QString,int,int,int,class QString)" (??0car@@QAE@HVQString@@00HHH0@Z) referenced in function "public: void __thiscall DatabaseController::getAll(class QString)" (?getAll@DatabaseController@@QAEXVQString@@@Z)
【问题讨论】:
-
请显示您的代码(并保持合理的简短):SSCCE。 编辑和完整的错误。
-
好的,请稍等,我只是想获得一个包含所有必要部分的精简版
-
链接错误与include无关,即使包含QString,如果没有指定QString的库,也可能会出现链接错误。
-
你能给我们看看你的
.pro文件吗? -
你定义汽车了吗()?
标签: c++ qt unresolved-external