使用supermap组件遇到 无法解析的外部符号 “__declspec(dllimport) public: class UGC::UGMapEditorWnd······“

项目场景:

使用产品:SMO_CPP_801_13228_53527_Win
操作系统:win7 x64


问题描述:

error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: class UGC::UGMapEditorWnd * __cdecl QMapControl::GetUGMapWnd(void)" (__imp_?GetUGMapWnd@QMapControl@@QEAAPEAVUGMapEditorWnd@UGC@@XZ),该符号在函数 "private: void __cdecl Positioning_Gui_Application::ImportSites(class std::vector<·······"中被引用

之前出现过一次类似的无法解析符号的错误(见前一篇),然后通过添加附加依赖项,解决了,这次又出现了,关键是这个程序是另一个程序拷贝过来的,之前运行成功过,说明已添加的依赖项是够的,所以这次不知道是什么原因了。


原因分析:

从supermap官网的技术问答社区其他类似问题有了启发,有人说,extension4QT需要在自个电脑上重新编译一遍,用新生成的dll和lib才适用于自己的电脑。我为什么会觉得是extension4QT的原因,是因为之前不少地方出错,在网上找都涉及extension4QT这个东西,而且需要自个儿重新编译的说法也不是第一次看见了,所以也是想着死马当活马医,就采取了重新编译的方法。


解决方案:

问题解决的思路是从supermap官网的技术问答社区其他类似问题处得到的,整体思路就是重新编译extension4qt,下面说一下具体编译方法:

  1. 在supermap找到sample->extensions4QT文件夹,打开里面的extensions4QT.pro(qt creator打开);
  2. 选择上方“构建”->“重新构建所有项目”,这样就会生在新的extension4qt.dll和.lib,这两个所在路径也好找(在sample->debug文件夹下面的x64);
  3. 然后将这两个路径确认添加在vs里面了(.dll是通过属性->调试->环境->path添加,.lib是通过属性->链接器->附加库目录添加)。

确定添加完毕,再调试就不会出现这个错误了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值