使用Visual Studio 2010创建Qt GUI应用程序时出现“未解析的外部符号”错误

时间:2013-05-18 23:14:55

标签: c++ visual-studio-2010 qt

我正在尝试创建一个非常简单的GUI应用程序,在我编写的一些C ++代码的顶部。我的问题可以简化为以下内容:

#include <QtGui\QDialog>
void setup(int argc, char **argv) {
    QDialog dlg;
}
int main(int argc, char **argv) {
    setup(argc, argv);
}

我配置了我的Qt库,我很确定这些库与我的Visual Studio 2010兼容(其他项目工作正常),但我不知道是否应该创建一个头文件。我总是收到这些错误:

>main.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall QDialog::~QDialog(void)" (??1QDialog@@UAE@XZ)
1>main.obj : error LNK2001: unresolved external symbol "public: __thiscall QDialog::QDialog(class QWid.................

1 个答案:

答案 0 :(得分:0)

你得到的错误表明VS编译器无法确定调用你所使用的外部函数的地址,即QDialog类对象的ctor和dtor。要避免此类错误,您应指定包含该函数定义的库的位置。为了实现这一点,你应该使用“项目属性” - >“配置属性” - >“链接器” - >“输入”,然后在“附加依赖项”行中输入外部库的绝对路径(例如“C:\ Qt \ 4.8.3 \ lib \ QtGui.lib”)。

我想如果你只是提到你提到的那些错误,你就可以正确设置你的包含路径。因此,指定输入库应该会有所帮助。

将来我建议您安装Qt VS Add-in。它为普通的VS“创建新项目”对话框添加了一些选项,因此您可以选择“新Qt项目”,并自动设置所有必需的路径。