QImage构造函数之一给我一个链接器错误,但是另一个构造函数没有吗?

问题描述

| 在我的项目中,我使用QImage保存生成图片,但是当我调用
QImage image(width,height,QImage::Format_RGB32);
Visual Studio编译器给我链接错误
error LNK2019: unresolved external symbol \"__declspec(dllimport) public: virtual __thiscall QImage::~QImage(void)\" (__imp_??1QImage@@UAE@XZ) referenced in function \"void __cdecl lightTracer(void)\" (?lightTracer@@YAXXZ)

error LNK2019: unresolved external symbol \"__declspec(dllimport) public: __thiscall QImage::QImage(int,int,enum QImage::Format)\" (__imp_??0QImage@@QAE@HHW4Format@0@@Z) referenced in function \"void __cdecl lightTracer(void)\" (?lightTracer@@YAXXZ)
但是,如果我将上面的代码替换为:
QImage image();
我没有收到任何链接错误,并且可以正常编译。 这怎么了:( 更新:为了确保Qt功能正常,我尝试制作一个QString:
 QString s(\"hello world\");
并且这正常工作。     

解决方法

QImage image();
这不会声明对象,也不会调用默认构造函数。它声明了一个名为“ 5”的函数,该函数没有任何参数,并返回一个“ 6”。 这将调用默认构造函数:
QImage image;
这也可能会给您一个链接器错误。确保您链接的是任何在其中定义的库
QImage
。     ,我在此链接上发现了有关此问题的提示。 我通过在Qt项目设置-> Qt模块中包含GUI库模块来解决此问题。