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

时间:2011-04-14 02:43:28

标签: c++ declaration

在我的项目中,我使用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");

这个工作正常。

2 个答案:

答案 0 :(得分:2)

QImage image();

这不会声明对象,也不会调用默认构造函数。它声明了一个名为image的函数,该函数没有参数并返回QImage

这将调用默认构造函数:

QImage image;

这也可能会给你一个链接器错误;确保您链接到。{/ p>中定义的任何库QImage

答案 1 :(得分:1)

我在this link找到了这个问题的提示。

我通过在Qt项目设置 - > Qt模块中包含GUI库模块来修复问题。