标签:++ clu win lease 连接器 ice 编译错误 业务 包含
Qt应用程序默认没有加QtNetwork库。在开发过程中,根据业务处理需要添加QtNetwork库。
【1】若使用qtcreator开发程序
【2】若使用VS + QT开发程序
本地环境VS2017 + QT5.9.2 编译错误提示如下:
1 1>download.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QNetworkAccessManager::QNetworkAccessManager(class QObject *)" (__imp_??0QNetworkAccessManager@@QAE@PAVQObject@@@Z),该符号在函数 "public: __thiscall download::download(class QWidget *,class QFlags<enum Qt::WindowType>)" (??0download@@QAE@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z) 中被引用 2 1>download.obj : error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall QNetworkAccessManager::metaObject(void)const " (?metaObject@QNetworkAccessManager@@UBEPBUQMetaObject@@XZ) 3 1>download.obj : error LNK2001: 无法解析的外部符号 "public: virtual void * __thiscall QNetworkAccessManager::qt_metacast(char const *)" (?qt_metacast@QNetworkAccessManager@@UAEPAXPBD@Z) 4 1>download.obj : error LNK2001: 无法解析的外部符号 "public: virtual int __thiscall QNetworkAccessManager::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@QNetworkAccessManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z) 5 1>download.obj : error LNK2001: 无法解析的外部符号 "protected: virtual class QNetworkReply * __thiscall QNetworkAccessManager::createRequest(enum QNetworkAccessManager::Operation,class QNetworkRequest const &,class QIODevice *)" (?createRequest@QNetworkAccessManager@@MAEPAVQNetworkReply@@W4Operation@1@ABVQNetworkRequest@@PAVQIODevice@@@Z) 6 1>download.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: virtual __thiscall QNetworkAccessManager::~QNetworkAccessManager(void)" (__imp_??1QNetworkAccessManager@@UAE@XZ),该符号在函数 "public: virtual void * __thiscall QNetworkAccessManager::`scalar deleting destructor‘(unsigned int)" (??_GQNetworkAccessManager@@UAEPAXI@Z) 中被引用 7 1>download.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QNetworkRequest::~QNetworkRequest(void)" (__imp_??1QNetworkRequest@@QAE@XZ),该符号在函数 "public: void __thiscall download::startRequest(class QUrl)" (?startRequest@download@@QAEXVQUrl@@@Z) 中被引用 8 1>download.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: class QNetworkReply * __thiscall QNetworkAccessManager::get(class QNetworkRequest const &)" (__imp_?get@QNetworkAccessManager@@QAEPAVQNetworkReply@@ABVQNetworkRequest@@@Z),该符号在函数 "public: void __thiscall download::startRequest(class QUrl)" (?startRequest@download@@QAEXVQUrl@@@Z) 中被引用 9 1>download.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QNetworkRequest::QNetworkRequest(class QUrl const &)" (__imp_??0QNetworkRequest@@QAE@ABVQUrl@@@Z),该符号在函数 "public: void __thiscall download::startRequest(class QUrl)" (?startRequest@download@@QAEXVQUrl@@@Z) 中被引用 10 1>F:\my_project\qt\download\Debug\download.exe : fatal error LNK1120: 9 个无法解析的外部命令
一般出现这个问题都是库文件没有添加造成的。
很明显,程序中使用了QtNetwork库,那么就需要手动添加QtNetwork库文件:
(1)在debug模式,需要加Q5tNetworkd.lib库文件
(2)在release模式,需要加Qt5Network.lib库文件
当使用VS进行开发时在哪里添加呢?共有两个地方需要添加(缺一不可):
(1)项目->属性->c/c++->常规->附加包含目录->在弹出的对话框中,点那个文件夹形状的按钮添加新行,输入$(QTDIR)\include\QtNetwork
(2)项目->属性->连接器->输入->附加依赖项,添加 Qt5Networkd.lib(debug模式)或者 Qt5Network.lib(release模式)
Good Good Study, Day Day Up.
顺序 选择 循环 总结
标签:++ clu win lease 连接器 ice 编译错误 业务 包含
原文地址:https://www.cnblogs.com/Braveliu/p/9361792.html