在过去的几天里,我一直在看这个,但没有成功。我一直在尝试用 Qt 创建一个图形应用程序。看来我的 LNK2019 应该来自一个未实现的构造函数:
main.obj:-1: error: LNK2019: unresolved external symbol "public: __cdecl ArbObject::ArbObject(class Table *,int *,int,int,int,int,int)" (??
0ArbObject@@QEAA@PEAVTable@@PEAHHHHHH@Z) referenced in function "class std::vector<class ArbObject *,class std::allocator<class ArbObject *> > __cdecl
createArbObjects(class QList<class QStringList> &,class Table *,int &)" (?createArbObjects@@YA?AV?$vector@PEAVArbObject@@V?$allocator@PEAVArbObject@@@std@@@std@@AEAV?
$QList@VQStringList@@@@PEAVTable@@AEAH@Z)
但是,构造函数在那里并在适当的 .cpp 文件中实现。
.h file has this:
ArbObject(Table* tr, int* rgb, int t, int xpos, int ypos, int w, int h);
.cpp file has this:
ArbObject::ArbObject(Table* tr, int* rgb, int t, int xpos, int ypos, int w, int h)
: QWidget((QWidget*)tr), obj_typ(t), xpos(xpos), ypos(ypos),wid(w), hei(h)
{
...
}
我已经包括了我能想到的一切。这在我的 Windows 机器上不起作用,但它在我的 Mac 上运行良好。我的问题是,什么样的依赖会导致这种问题?我可以探索哪些其他途径来解决我的问题?
- 它是基于编译器的吗?MSVC 与 Clang
- 是否在链接过程中都包含不同的文件,因此它可能无法在一个平台上运行,而不是在另一个平台上运行。
编辑:固定
看答案!