Qt应用程序默认没有加QtNetwork库。如下图:

在开发过程中,因处理业务需要手动添加QtNetwork库。根据常见情况分为以下两种:

【1】若使用QTCreator开发程序

在工程的pro文件中添加:QT += network

【2】若使用VS + QT开发程序

本地环境VS2017 + QT5.9.2 编译错误提示如下:

 error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __cdecl QNetworkRequest::QNetworkRequest(class QUrl const &)" (__imp_??0QNetworkRequest@@QEAA@AEBVQUrl@@@Z),该符号在函数 "public: void __cdecl UPCLoginService::execute(void)" (?execute@UPCLoginService@@QEAAXXZ) 中被引用
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __cdecl QNetworkRequest::~QNetworkRequest(void)" (__imp_??1QNetworkRequest@@QEAA@XZ),该符号在函数 "public: void __cdecl UPCLoginService::execute(void)" (?execute@UPCLoginService@@QEAAXXZ) 中被引用
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __cdecl QNetworkRequest::setUrl(class QUrl const &)" (__imp_?setUrl@QNetworkRequest@@QEAAXAEBVQUrl@@@Z),该符号在函数 "public: void __cdecl UPCLoginService::execute(void)" (?execute@UPCLoginService@@QEAAXXZ) 中被引用
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __cdecl QNetworkRequest::setHeader(enum QNetworkRequest::KnownHeaders,class QVariant const &)" (__imp_?setHeader@QNetworkRequest@@QEAAXW4KnownHeaders@@AEBVQVariant@@@Z),该符号在函数 "public: void __cdecl UPCLoginService::execute(void)" (?execute@UPCLoginService@@QEAAXXZ) 中被引用
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __cdecl QNetworkRequest::setSslConfiguration(class QSslConfiguration const &)" (__imp_?setSslConfiguration@QNetworkRequest@@QEAAXAEBVQSslConfiguration@@@Z),该符号在函数 "public: void __cdecl UPCLoginService::execute(void)" (?execute@UPCLoginService@@QEAAXXZ) 中被引用
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __cdecl QSslConfiguration::QSslConfiguration(void)" (__imp_??0QSslConfiguration@@QEAA@XZ),该符号在函数 "public: __cdecl UPCLoginService::UPCLoginService(class QObject *)" (??0UPCLoginService@@QEAA@PEAVQObject@@@Z) 中被引用
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __cdecl QSslConfiguration::~QSslConfiguration(void)" (__imp_??1QSslConfiguration@@QEAA@XZ),该符号在函数 "public: __cdecl UPCLoginService::UPCLoginService(class QObject *)" (??0UPCLoginService@@QEAA@PEAVQObject@@@Z) 中被引用
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: class QSslConfiguration & __cdecl QSslConfiguration::operator=(class QSslConfiguration &&)" (__imp_??4QSslConfiguration@@QEAAAEAV0@$$QEAV0@@Z),该符号在函数 "public: __cdecl UPCLoginService::UPCLoginService(class QObject *)" (??0UPCLoginService@@QEAA@PEAVQObject@@@Z) 中被引用
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __cdecl QSslConfiguration::setProtocol(enum QSsl::SslProtocol)" (__imp_?setProtocol@QSslConfiguration@@QEAAXW4SslProtocol@QSsl@@@Z),该符号在函数 "public: __cdecl UPCLoginService::UPCLoginService(class QObject *)" (??0UPCLoginService@@QEAA@PEAVQObject@@@Z) 中被引用
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __cdecl QSslConfiguration::setPeerVerifyMode(enum QSslSocket::PeerVerifyMode)" (__imp_?setPeerVerifyMode@QSslConfiguration@@QEAAXW4PeerVerifyMode@QSslSocket@@@Z),该符号在函数 "public: __cdecl UPCLoginService::UPCLoginService(class QObject *)" (??0UPCLoginService@@QEAA@PEAVQObject@@@Z) 中被引用
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static class QSslConfiguration __cdecl QSslConfiguration::defaultConfiguration(void)" (__imp_?defaultConfiguration@QSslConfiguration@@SA?AV1@XZ),该符号在函数 "public: __cdecl UPCLoginService::UPCLoginService(class QObject *)" (??0UPCLoginService@@QEAA@PEAVQObject@@@Z) 中被引用
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __cdecl QNetworkAccessManager::QNetworkAccessManager(class QObject *)" (__imp_??0QNetworkAccessManager@@QEAA@PEAVQObject@@@Z),该符号在函数 "public: __cdecl UPCLoginService::UPCLoginService(class QObject *)" (??0UPCLoginService@@QEAA@PEAVQObject@@@Z) 中被引用
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: virtual __cdecl QNetworkAccessManager::~QNetworkAccessManager(void)" (__imp_??1QNetworkAccessManager@@UEAA@XZ),该符号在函数 "public: virtual __cdecl UPCLoginService::~UPCLoginService(void)" (??1UPCLoginService@@UEAA@XZ) 中被引用
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: class QNetworkReply * __cdecl QNetworkAccessManager::post(class QNetworkRequest const &,class QByteArray const &)" (__imp_?post@QNetworkAccessManager@@QEAAPEAVQNetworkReply@@AEBVQNetworkRequest@@AEBVQByteArray@@@Z),该符号在函数 "public: void __cdecl UPCLoginService::execute(void)" (?execute@UPCLoginService@@QEAAXXZ) 中被引用
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __cdecl QNetworkAccessManager::finished(class QNetworkReply *)" (__imp_?finished@QNetworkAccessManager@@QEAAXPEAVQNetworkReply@@@Z),该符号在函数 "public: __cdecl UPCLoginService::UPCLoginService(class QObject *)" (??0UPCLoginService@@QEAA@PEAVQObject@@@Z) 中被引用
error LNK2001: 无法解析的外部符号 "protected: virtual class QNetworkReply * __cdecl QNetworkAccessManager::createRequest(enum QNetworkAccessManager::Operation,class QNetworkRequest const &,class QIODevice *)" (?createRequest@QNetworkAccessManager@@MEAAPEAVQNetworkReply@@W4Operation@@AEBVQNetworkRequest@@PEAVQIODevice@@@Z)
error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: static struct QMetaObject const QNetworkAccessManager::staticMetaObject" (__imp_?staticMetaObject@QNetworkAccessManager@@2UQMetaObject@@B)
error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: static struct QMetaObject const QNetworkAccessManager::staticMetaObject" (__imp_?staticMetaObject@QNetworkAccessManager@@2UQMetaObject@@B)
error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: static struct QMetaObject const QNetworkReply::staticMetaObject" (__imp_?staticMetaObject@QNetworkReply@@2UQMetaObject@@B)
error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: static struct QMetaObject const QNetworkReply::staticMetaObject" (__imp_?staticMetaObject@QNetworkReply@@2UQMetaObject@@B)
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: virtual void * __cdecl QNetworkAccessManager::qt_metacast(char const *)" (__imp_?qt_metacast@QNetworkAccessManager@@UEAAPEAXPEBD@Z),该符号在函数 "public: virtual void * __cdecl UPCLoginService::qt_metacast(char const *)" (?qt_metacast@UPCLoginService@@UEAAPEAXPEBD@Z) 中被引用
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: virtual int __cdecl QNetworkAccessManager::qt_metacall(enum QMetaObject::Call,int,void * *)" (__imp_?qt_metacall@QNetworkAccessManager@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z),该符号在函数 "public: virtual int __cdecl UPCLoginService::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@UPCLoginService@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z) 中被引用

一般出现此链接问题都是没有添加库文件造成的。

很明显,程序中使用了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.

顺序 选择  循环 总结

Qt 添加 QtNetwork 库文件的更多相关文章

  1. Qt 添加外部库文件(四种方法)

    Qt添加外部库文件, 一种就是直接加库文件的绝对路劲,这种方法简单,但是遇到多个库文件的时候,会很麻烦,而且,如果工程移动位置以后还需要重新配置 另一种就是相对路径了,不过Qt 编译的文件会在一个单独 ...

  2. 【转】QT 添加外部库文件

    转自:Qt 添加外部库文件 LIBS += D:\Code\Opengltest\OpenGL32.Lib D:\Code\Opengltest\GlU32.Lib # 直接加绝对路径 LIBS += ...

  3. QT 添加外部库文件

    LIBS += D:\Code\Opengltest\OpenGL32.Lib D:\Code\Opengltest\GlU32.Lib LIBS += OpenGL32.Lib GlU32.Lib  ...

  4. windows下qtcreator添加ICE库文件

    由qtcreator手动添加外部库,会自动生成: win32:CONFIG(release, debug|release): LIBS += -L$$PWD/C:/ZeroC/Ice-/lib/vc1 ...

  5. Linux下Qt调用共享库文件.so

    修改已有的pro文件,添加如下几句: INCLUDEPATH += /home/ubuntu/camera/camera/LIBS += -L/home/ubuntu/camera/camera -l ...

  6. qt添加cef库嵌入web [转]

    qt cef嵌入web 原文http://blog.sina.com.cn/s/blog_9e59cf590102vnfc.html 最近项目需要,研究了下libcef库. Cef(Chromium ...

  7. QT 添加 lib库

    扒自网友文章: 一.添加第三方的头文件 首先,添加头文件  #include "ControlCAN.h" 然后,再将这个头文件放到工程的目录下 二.添加.lib文件 首先,将.l ...

  8. Altium Designer添加元件库文件

    1 默认元件库路径 C:\Users\Public\Documents\Altium\AD 10.0.0.20340\Library 2 创建元件原理图库 图2.1 新建schlib 图2.2 绘制元 ...

  9. qt添加cef库嵌入web,linux 下Qt WebEngine 程序打包简单记录

    http://www.cnblogs.com/oloroso/p/6051631.html http://www.cnblogs.com/oloroso/p/6149000.html

随机推荐

  1. go get 的使用

    1.设置环境变量export GOPATH=/f/go_work2 2.go get github.com/xx

  2. 【PyQt5-Qt Designer】液晶显示屏(QLCDNumber)

    液晶显示屏(QLCDNumber) 总体介绍 QLCDNumber小部件显示一个类似LCD的数字. 它可以显示任何大小的数字.它可以显示十进制,十六进制,八进制或二进制数字.使用display()槽连 ...

  3. 解决采集知乎数据时由于账号被封遗漏的账号重爬问题(python代码)

    '''一.最笨的办法了################################################################为了处理由于账号被封而没跑到的问题id进行以下两步 ...

  4. rar压缩类

    using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; namespa ...

  5. 【托业】托业(TOEIC)成绩 & 等级划分以及评分标准

    托业(TOEIC)成绩 & 等级划分以及评分标准 TOEIC全称:Test of English for International Communication(国际交流英语测评) 已通行全球 ...

  6. 【托业】【新托业TOEIC新题型真题】学习笔记7-题库二->P1~4

    P1: 1. shopping cart 购物车 stock the shelves 补货 examining the vegetables 挑选蔬菜 4.admire some paintings ...

  7. wordpress如何去掉generator

    用wordpress建站经常会出现一些显而易见的标签,比如说作者<meta name="generator" content="WordPress 4.9" ...

  8. UIBezierPath使用

    效果图,Demo的例子是我自己做的,下面曲线的代码是从别处copy过来的 copy地址 -(void)touchesBegan:(NSSet<UITouch *> *)touches wi ...

  9. awk命令的基本使用

    命令主要用法 -格式1:前置命令 | awk [选项] '[条件]{编辑指令}' -格式2:awk [选项] '[条件]{编辑指令}' filename 常用命令选项 -F:指定分隔符,可省略(默认空 ...

  10. Python3学习之路~8.1 socket概念及参数介绍

    一 socket介绍 TCP/IP 基于TCP/IP协议栈的网络编程是最基本的网络编程方式,主要是使用各种编程语言,利用操作系统提供的套接字网络编程接口,直接开发各种网络应用程序. socket概念 ...