error LINK2001:无法解析的外部符号

0 投票
使用产品:supermap-iobjectscpp-9.1.1-16828-70590-win-all 操作系统:win10 x64

联系方式QQ:1005640980

按照帮助文档用iObject c++ 实现GettingStarted案例过程中,生成解决方案是出现以下错误

1>------ 已启动全部重新生成:  项目: GettingStarted, 配置: Debug Win32 ------
1>  Moc'ing gettingstarted.h...
1>  Uic'ing gettingstarted.ui...
1>  Rcc'ing gettingstarted.qrc...
1>  moc_gettingstarted.cpp
1>  gettingstarted.cpp
1>  main.cpp
1>  正在生成代码...
1>  qrc_gettingstarted.cpp
1>     正在创建库 ..\..\..\MyProject\Win32\Debug\GettingStarted.lib 和对象 ..\..\..\MyProject\Win32\Debug\GettingStarted.exp
1>gettingstarted.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall QGISWidget::enterEvent(class QEvent *)" (?enterEvent@QGISWidget@@UAEXPAVQEvent@@@Z)
1>gettingstarted.obj : error LNK2001: 无法解析的外部符号 "protected: virtual void __thiscall QMapControl::keyPressEvent(class QKeyEvent *)" (?keyPressEvent@QMapControl@@MAEXPAVQKeyEvent@@@Z)
1>gettingstarted.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall QGISWidget::keyReleaseEvent(class QKeyEvent *)" (?keyReleaseEvent@QGISWidget@@UAEXPAVQKeyEvent@@@Z)
1>gettingstarted.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall QGISWidget::leaveEvent(class QEvent *)" (?leaveEvent@QGISWidget@@UAEXPAVQEvent@@@Z)
1>gettingstarted.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall QGISWidget::mouseDoubleClickEvent(class QMouseEvent *)" (?mouseDoubleClickEvent@QGISWidget@@UAEXPAVQMouseEvent@@@Z)
1>gettingstarted.obj : error LNK2001: 无法解析的外部符号 "protected: virtual void __thiscall QMapControl::mouseMoveEvent(class QMouseEvent *)" (?mouseMoveEvent@QMapControl@@MAEXPAVQMouseEvent@@@Z)
1>gettingstarted.obj : error LNK2001: 无法解析的外部符号 "protected: virtual void __thiscall QMapControl::mousePressEvent(class QMouseEvent *)" (?mousePressEvent@QMapControl@@MAEXPAVQMouseEvent@@@Z)
1>gettingstarted.obj : error LNK2001: 无法解析的外部符号 "protected: virtual void __thiscall QMapControl::mouseReleaseEvent(class QMouseEvent *)" (?mouseReleaseEvent@QMapControl@@MAEXPAVQMouseEvent@@@Z)
1>gettingstarted.obj : error LNK2001: 无法解析的外部符号 "protected: virtual void __thiscall QMapControl::paintEvent(class QPaintEvent *)" (?paintEvent@QMapControl@@MAEXPAVQPaintEvent@@@Z)
1>gettingstarted.obj : error LNK2001: 无法解析的外部符号 "protected: virtual void __thiscall QMapControl::resizeEvent(class QResizeEvent *)" (?resizeEvent@QMapControl@@MAEXPAVQResizeEvent@@@Z)
1>gettingstarted.obj : error LNK2001: 无法解析的外部符号 "protected: virtual void __thiscall QMapControl::wheelEvent(class QWheelEvent *)" (?wheelEvent@QMapControl@@MAEXPAVQWheelEvent@@@Z)
1>..\..\..\MyProject\Win32\Debug\\GettingStarted.exe : fatal error LNK1120: 11 个无法解析的外部命令
========== 全部重新生成:  成功 0 个,失败 1 个,跳过 0 个 ==========
5月 29 分类:  383次浏览 | 用户: dashen (3 分)

1个回答

0 投票
您好,你是使用了示例程序Extensions4Qt中的QMapControl吧,你的工程没有添加库依赖。另外建议重新编译Extensions4Qt,以匹配您的编译环境。
5月 29 用户: 幸俊 学富五车 (520 分)

您好,解决完上述问题后我这里又出现了新的问题,在运行的时候又报错了。生成解决方案的时候没有报错。

我这里用的是64位的QT,电脑系统也是64位的。

这不是VS吗?Extensions4Qt是用的产品包中带的,还是自己编译的?确认用的库是32位还是64位?

你好,我也是vs环境,Extensions4Qt我看是QT工程文件,要用qt编译?

...