无法解析的外部符号

Gary_Cui_1st 2015-03-23 03:16:07
正在创建库 I:\SDK12.1.0\RTTSDK\examples\bin/x64/Debug/plugins\rttSimplePlugin.lib 和对象 I:\SDK12.1.0\RTTSDK\examples\bin/x64/Debug/plugins\rttSimplePlugin.exp
1>rttMenuAction.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __cdecl QString::~QString(void)" (__imp_??1QString@@QEAA@XZ),该符号在函数 "public: virtual class rtt::commons::IntrusivePtr<class RTT::SDK::IPropertyMap> __cdecl RTT::SDK::HelloMenuAction::GetIconFilenames(void)" (?GetIconFilenames@HelloMenuAction@SDK@RTT@@UEAA?AV?$IntrusivePtr@VIPropertyMap@SDK@RTT@@@commons@rtt@@XZ) 中被引用
1>rttSimplePlugin.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __cdecl QString::~QString(void)" (__imp_??1QString@@QEAA@XZ)
1>rttMenuAction.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static class QString __cdecl QObject::tr(char const *,char const *)" (__imp_?tr@QObject@@SA?AVQString@@PEBD0@Z),该符号在函数 "public: virtual class rtt::commons::IntrusivePtr<class RTT::SDK::IPropertyMap> __cdecl RTT::SDK::HelloMenuAction::GetIconFilenames(void)" (?GetIconFilenames@HelloMenuAction@SDK@RTT@@UEAA?AV?$IntrusivePtr@VIPropertyMap@SDK@RTT@@@commons@rtt@@XZ) 中被引用
1>rttSimplePlugin.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: static class QString __cdecl QObject::tr(char const *,char const *)" (__imp_?tr@QObject@@SA?AVQString@@PEBD0@Z)
1>rttMenuAction.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl QString::toStdString(void)const " (__imp_?toStdString@QString@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ),该符号在函数 "private: void __cdecl RTT::SDK::HelloMenuAction::logError(class QString const &)" (?logError@HelloMenuAction@SDK@RTT@@AEAAXAEBVQString@@@Z) 中被引用
1>rttSimplePlugin.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl QString::toStdString(void)const " (__imp_?toStdString@QString@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
1>rttSimplePlugin.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: virtual __cdecl QMessageBox::~QMessageBox(void)" (__imp_??1QMessageBox@@UEAA@XZ),该符号在函数 "public: void __cdecl RTT::SDK::SimplePlugin::onMenuAction(void)" (?onMenuAction@SimplePlugin@SDK@RTT@@QEAAXXZ) 中被引用
1>rttSimplePlugin.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: int __cdecl QDialog::exec(void)" (__imp_?exec@QDialog@@QEAAHXZ),该符号在函数 "public: void __cdecl RTT::SDK::SimplePlugin::onMenuAction(void)" (?onMenuAction@SimplePlugin@SDK@RTT@@QEAAXXZ) 中被引用
1>rttSimplePlugin.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __cdecl QMessageBox::setText(class QString const &)" (__imp_?setText@QMessageBox@@QEAAXAEBVQString@@@Z),该符号在函数 "public: void __cdecl RTT::SDK::SimplePlugin::onMenuAction(void)" (?onMenuAction@SimplePlugin@SDK@RTT@@QEAAXXZ) 中被引用
1>rttSimplePlugin.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __cdecl QString::QString(char const *)" (__imp_??0QString@@QEAA@PEBD@Z),该符号在函数 "public: void __cdecl RTT::SDK::SimplePlugin::onMenuAction(void)" (?onMenuAction@SimplePlugin@SDK@RTT@@QEAAXXZ) 中被引用
1>rttSimplePlugin.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __cdecl QMessageBox::QMessageBox(class QWidget *)" (__imp_??0QMessageBox@@QEAA@PEAVQWidget@@@Z),该符号在函数 "public: void __cdecl RTT::SDK::SimplePlugin::onMenuAction(void)" (?onMenuAction@SimplePlugin@SDK@RTT@@QEAAXXZ) 中被引用
1>I:\SDK12.1.0\RTTSDK\examples\bin/x64/Debug/plugins\rttSimplePlugin.dll : fatal error LNK1120: 8 个无法解析的外部命令
1>
1>生成失败。

----------------------------------------------------------------------

都是QT自己的库,找不到,comment,和手动添加库都已经做了,没有用,求助。

搭载环境VS2010+QT4.8.6
...全文
320 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gary_Cui_1st 2015-03-25
  • 打赏
  • 举报
回复
已解决,是我的3rdparty-SDK是64位的,里面引用qt的库函数,而qt库使用的是win32的,我在64位平台上编译出x64的qt库就可以了。
赵4老师 2015-03-23
  • 打赏
  • 举报
回复
也许是你.h,.lib,.dll的版本不匹配。 试试调整附加头文件所在目录和附加库目录的前后顺序。
Gary_Cui_1st 2015-03-23
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
[quote=引用 4 楼 zhao4zhong1 的回复:] 项目、属性、链接器、常规、附加库目录:填写附加依赖库所在目录 分号间隔多项
如果目录名字中包含汉字、空格等特殊字符的话,可能还得将其用半角双引号括住。[/quote] 赵老师,路径我感觉是肯定没有问题的,因为我一开始的时候遇到报错,说找不到qtguid4.lib这个时候其实qt路径在链接器里是有问题的,后来我重新设置路径,就没有上个错误了,来了新的错误。
赵4老师 2015-03-23
  • 打赏
  • 举报
回复
引用 4 楼 zhao4zhong1 的回复:
项目、属性、链接器、常规、附加库目录:填写附加依赖库所在目录 分号间隔多项
如果目录名字中包含汉字、空格等特殊字符的话,可能还得将其用半角双引号括住。
赵4老师 2015-03-23
  • 打赏
  • 举报
回复
项目、属性、链接器、常规、附加库目录:填写附加依赖库所在目录 分号间隔多项
Gary_Cui_1st 2015-03-23
  • 打赏
  • 举报
回复
引用 2 楼 focuslight 的回复:
附加库没有安装, 路径设置
我自己也总结了这种问题所发生的情况的汇总: 1、模板类中,声明和实现不在同一个文件 -----------------这个不可能,qt自己的库 2、缺少相应的lib库,------------------------------#pragma comment 或者在链接器里加入对应的lib 3、函数声明和函数实现参数不一致,甚至函数没有实现 ----------------------同1 4、头文件和库文件没有同时更新的,导致虚列表错位 ----------------------同1 我个人认为我用#pragma comment和链接器里都已经加过lib了,而且在“附加依赖项“里也有”QtGuid4.lib QtCored4.lib“这两个库 但是他还是找不到,我就是在郁闷了 希望大侠们能给点头绪。非常感谢。
Isnis-fallen 2015-03-23
  • 打赏
  • 举报
回复
附加库没有安装, 路径设置
赵4老师 2015-03-23
  • 打赏
  • 举报
回复
将错误信息中出现的标识符放在google里面搜一下,看其在哪个.lib中,然后在本地硬盘上搜索该.lib,如果没有,在网上搜索相关库或模块下载安装,然后将其所在目录填写到“附加依赖库所在目录”中,将其名字添加到“附加依赖库”中,重新连接。 VC6: 工程、设置、Link、分类:Input、附加库路径:填写附加依赖库所在目录 分号间隔多项 工程、设置、Link、分类:Input、对象/库模块:填写附加依赖库的名字.lib 空格间隔多项 VS20xx: 项目、属性、链接器、常规、附加库目录:填写附加依赖库所在目录 分号间隔多项 项目、属性、链接器、输入、附加依赖项:填写附加依赖库的名字.lib 空格或分号间隔多项

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧