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. 第 6 章 es5 对象创建和继承

    目录 第 6 章 Object 一.创建对象 1. 字面量 2. 工厂模式 3. 构造函数 4. 原型 5. 构造+原型 6. 其他 二.Object静态属性 Object.definePropert ...

  2. Spring加载classpath与classpath*的过程剖析

    使用spring-boot 1.5.7 在resource目录下创建i18n文件夹 使用spring的默认配置没有加载到文件 # INTERNATIONALIZATION (MessageSource ...

  3. java装配bean

    java装配bean,可以自动装配,也可以显式装配: 1.通过组件扫描自动装配bean 因为使用了Configuration注解,表明这个类是一个配置类,该类应该包含在spring应用上下文如何创建b ...

  4. MySQL忘记root密码--不重启mysqd重置root密码

    先提个问题:如何不重启mysqld,且没有权限修改用户账号和权限的情况下,如何重新设置root密码?不知道没关系,在此之前我也是不知道如何操作的,先看看下面的几种重置root密码的方法. 1.skip ...

  5. 数据库 - Navicat与pymysql模块

    一.Nabicat 在生产环境中操作MySQL数据库还是推荐使用命令行工具mysql,但在我们自己开发测试时, 可以使用可视化工具Navicat,以图形界面的形式操作MySQL数据库 官网下载:htt ...

  6. 006-docker-安装-nginx

    1.搜索镜像 docker search nginx 2.拉取合适镜像 docker pull nginx docker images 3.使用镜像 docker run -p 8080:80 --n ...

  7. 关于获取路径path

    String webPath = request.getServletPath(); log.info(webPath); 输出: /zjdlbb/zjdlbb/zjdlbb/test.ht log. ...

  8. 546A

    #include <stdio.h> int main() { int n1,n2,n3; int ans; scanf("%d %d %d", &n1, &a ...

  9. Request实例

    Request常用方法        getRequestURL方法返回客户端发出请求时的完整URL. getRequestURI方法返回请求行中的资源名部分. getQueryString 方法返回 ...

  10. Java通过sftp上传文件

    Linux操作系统我们经常使用ssh中的ftp,sftp连接服务器,做相应操作. 如何通过java代码的形式采用sftp连接到服务器,进行文件上传下载等操作呢? 第一步,引入依赖包 <!-- s ...