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. Java+Selenium 如何处理Try/Catch

    场景:为了检查数据是否存在,如果存在就把数据删除,不存在则新增保存.因为我们需要做下数据初始化准备工作. 一.:Feature 示例: Scenario: E-251:维护薪资帐套明细 When I ...

  2. 自动化工具之二:win32gui

    自动化工具win32gui 一.下载安装win32gui 二.Win32gui的使用 1.查找窗体句柄 我们知道的所有空间其实就是窗体,所有的窗口都有一个独立的句柄,要操作任意一个窗体,你都需要找到这 ...

  3. 002-linux命令-文件和目录、查看文件内容-文件和目录、查看文件内容

    一.文件和目录 cd /home :进入‘/home’目录 cd .. 返回上一级目录 cd ../..返回上两级目录 cd 进入个人的主目录 cd ~user1进入个人的主目录 cd - 返回上次所 ...

  4. [硬件]SICK LMS111激光扫描仪使用

    1.电源接入 电源线5Pin,4芯.棕色线接入正极,蓝色线接入负极(直流电,地线).LMS111-100默认的电压范围是10-30V,推荐使用24V,我这里使用的是12V/3A的锂电池. 另外两根白色 ...

  5. 向github提交代码总是要输入用户名密码

    在命令行输入命令: $ git config --global credential.helper store 这一步会在用户目录下的.gitconfig文件最后添加: [credential]    ...

  6. Spark SQL 函数全集

    org.apache.spark.sql.functions是一个Object,提供了约两百多个函数. 大部分函数与Hive的差不多. 除UDF函数,均可在spark-sql中直接使用. 经过impo ...

  7. 231A

    #include <iostream> using namespace std; #define maxSize 10 int main() { int views[maxSize]; i ...

  8. dialog问题记录

    这个怎么回事,怎么会负利润 http://mmbiz.qpic.cn/mmbiz_jpg/sd9PceC1NdAEVpR5pKerugkpEPEUIsBVoaz5ibTiaHtxoickmF2bXqF ...

  9. node加密解密 crytpo

    var crypto = require('crypto'); exports.encrypt = function (str, secret) { var cipher = crypto.creat ...

  10. JAVA代码MD5加密方法

    PwdEncoder.java 接口类 package com.common.security.encoder; /** * 密码加密接口 */ public interface PwdEncoder ...