VS2008+Qt4.8.1下使用QtNetwork库

本文详细解释了在QT工程中使用QFtp、QHttp等类时遇到的无法解析外部符号错误,并提供了在debug和release模式下正确添加QtNetwork库的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天第一次在QT工程中用QFtp,QHttp等类写服务器程序,编译的时候发现有错误

错误如下:

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) 中被引用
1>download.obj : error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall QNetworkAccessManager::metaObject(void)const " (?metaObject@QNetworkAccessManager@@UBEPBUQMetaObject@@XZ)
1>download.obj : error LNK2001: 无法解析的外部符号 "public: virtual void * __thiscall QNetworkAccessManager::qt_metacast(char const *)" (?qt_metacast@QNetworkAccessManager@@UAEPAXPBD@Z)
1>download.obj : error LNK2001: 无法解析的外部符号 "public: virtual int __thiscall QNetworkAccessManager::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@QNetworkAccessManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
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)
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) 中被引用
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) 中被引用
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) 中被引用
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) 中被引用
1>F:\my_project\qt\download\Debug\download.exe : fatal error LNK1120: 9 个无法解析的外部命令


一般出现这个问题都是库文件没有添加造成,这里使用QtNetwork就要加QtNetwork的库文件,在debug模式下需要加QtNetworkd4.lib库文件,

在release模式下需要加QtNetwork4.lib库文件

在哪里添加呢,一共有两个地方需要添加,缺一不可

1. 项目->属性->c/c++->常规->附加包含目录->在弹出的对话框中,点那个文件夹形状的按钮添加新行,输入$(QTDIR)\include\QtNetwork

2. 项目->属性->连接器->输入->附加依赖项,添加 QtNetworkd4.lib(debug模式)或者  QtNetwork4.lib(release模式)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值