0

我正在尝试在我编写的一些 C++ 代码之上制作一个非常简单的 GUI 应用程序。我的问题可以简化为以下内容:

#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.................
4

1 回答 1

0

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

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

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

于 2013-05-19T12:17:31.197 回答