首页 资讯 应用 高压 设计 行业 低压 电路图 关于

嵌入式

旗下栏目: PLC 嵌入式 单片机 DCS

vs2008中Qt网络模块的问题

嵌入式 | 发布时间:2018-06-27 | 人气: | #评论# | 本文关键字:Qt
摘要:1. 无法打开包括文件:“QUdpSocket”:No such file or directory 可能是因为Qt版本(本人用的是Qt4.7.3)的原因,网络模块的TCP、UDP头文件发生了变化。 解决方法:把原先的#include QUdpSocket包含加上QtNe

1. 无法打开包括文件:“QUdpSocket”:No such file or directory

可能是因为Qt版本(本人用的是Qt4.7.3)的原因,网络模块的TCP、UDP头文件发生了变化。

解决方法:把原先的#include <QUdpSocket>包含加上QtNetwork/,即变成#include <QtNetwork/QUdpSocket>,QTcpSocket、QHostAddress的同理。

 (后记):其实此问题并不是路径问题,只要在Qt工程中把QtNetwork library加上去就可以了,而无需把原先的#include <QUdpSocket>包含加上QtNetwork/

 2. QtNetwork库未添加引起的链接问题

链接时出现错误如下:

1>正在生成代码...
1>正在链接...
1>LINK : 没有找到 E:\QtProj\2donkey\Debug\donkeyhead-client.exe 或上一个增量链接没有生成它;正在执行完全链接
1>regdialog.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QTcpSocket::QTcpSocket(class QObject *)" ([email protected]@[email protected]@@@Z),该符号在函数 "public: __thiscall regdialog::regdialog(class QString,class QString,class QWidget *)" ([email protected]@[email protected]@@[email protected]@@Z) 中被引用
1>login.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QTcpSocket::QTcpSocket(class QObject *)" ([email protected]@[email protected]@@@Z)
1>regdialog.obj : error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall QTcpSocket::metaObject(void)const " ([email protected]@@[email protected]@XZ)
1>login.obj : error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall QTcpSocket::metaObject(void)const " ([email protected]@@[email protected]@XZ)
1>regdialog.obj : error LNK2001: 无法解析的外部符号 "public: virtual void * __thiscall QTcpSocket::qt_metacast(char const *)" ([email protected]@@[email protected])
1>login.obj : error LNK2001: 无法解析的外部符号 "public: virtual void * __thiscall QTcpSocket::qt_metacast(char const *)" ([email protected]@@[email protected])
1>regdialog.obj : error LNK2001: 无法解析的外部符号 "public: virtual int __thiscall QTcpSocket::qt_metacall(enum QMetaObject::Call,int,void * *)" ([email protected]@@[email protected]@@[email protected])
1>login.obj : error LNK2001: 无法解析的外部符号 "public: virtual int __thiscall QTcpSocket::qt_metacall(enum QMetaObject::Call,int,void * *)" ([email protected]@@[email protected]@@[email protected])
1>regdialog.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall QAbstractSocket::isSequential(void)const " ([email protected]@@UBE_NXZ)
1>login.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall QAbstractSocket::isSequential(void)const " ([email protected]@@UBE_NXZ)
1>panel.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall QAbstractSocket::isSequential(void)const " ([email protected]@@UBE_NXZ)
1>regdialog.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall QAbstractSocket::close(void)" ([email protected]@@UAEXXZ)
1>login.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall QAbstractSocket::close(void)" ([email protected]@@UAEXXZ)
1>panel.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall QAbstractSocket::close(void)" ([email protected]@@UAEXXZ)
1>regdialog.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall QAbstractSocket::atEnd(void)const " ([email protected]@@UBE_NXZ)
1>login.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall QAbstractSocket::atEnd(void)const " ([email protected]@@UBE_NXZ)
1>panel.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall QAbstractSocket::atEnd(void)const " ([email protected]@@UBE_NXZ)
1>regdialog.obj : error LNK2001: 无法解析的外部符号 "public: virtual __int64 __thiscall QAbstractSocket::bytesAvailable(void)const " ([email protected]@@UBE_JXZ)
1>login.obj : error LNK2001: 无法解析的外部符号 "public: virtual __int64 __thiscall QAbstractSocket::bytesAvailable(void)const " ([email protected]@@UBE_JXZ)
1>panel.obj : error LNK2001: 无法解析的外部符号 "public: virtual __int64 __thiscall QAbstractSocket::bytesAvailable(void)const " ([email protected]@@UBE_JXZ)
1>regdialog.obj : error LNK2001: 无法解析的外部符号 "public: virtual __int64 __thiscall QAbstractSocket::bytesToWrite(void)const " ([email protected]@@UBE_JXZ)
1>login.obj : error LNK2001: 无法解析的外部符号 "public: virtual __int64 __thiscall QAbstractSocket::bytesToWrite(void)const " ([email protected]@@UBE_JXZ)
1>panel.obj : error LNK2001: 无法解析的外部符号 "public: virtual __int64 __thiscall QAbstractSocket::bytesToWrite(void)const " ([email protected]@@UBE_JXZ)
1>regdialog.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall QAbstractSocket::canReadLine(void)const " ([email protected]@@UBE_NXZ)
1>login.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall QAbstractSocket::canReadLine(void)const " ([email protected]@@UBE_NXZ)
1>panel.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall QAbstractSocket::canReadLine(void)const " ([email protected]@@UBE_NXZ)
1>regdialog.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall QAbstractSocket::waitForReadyRead(int)" ([email protected]@@[email protected])
1>login.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall QAbstractSocket::waitForReadyRead(int)" ([email protected]@@[email protected])
1>panel.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall QAbstractSocket::waitForReadyRead(int)" ([email protected]@@[email protected])
1>regdialog.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall QAbstractSocket::waitForBytesWritten(int)" ([email protected]@@[email protected])
1>login.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall QAbstractSocket::waitForBytesWritten(int)" ([email protected]@@[email protected])
1>panel.obj : error LNK2019: 无法解析的外部符号 "public: virtual bool __thiscall QAbstractSocket::waitForBytesWritten(int)" ([email protected]@@[email protected]),该符号在函数 "public: virtual __thiscall panel::~panel(void)" ([email protected]@[email protected]) 中被引用
1>regdialog.obj : error LNK2001: 无法解析的外部符号 "protected: virtual __int64 __thiscall QAbstractSocket::readData(char *,__int64)" ([email protected]@@[email protected])
1>login.obj : error LNK2001: 无法解析的外部符号 "protected: virtual __int64 __thiscall QAbstractSocket::readData(char *,__int64)" ([email protected]@@[email protected])
1>panel.obj : error LNK2001: 无法解析的外部符号 "protected: virtual __int64 __thiscall QAbstractSocket::readData(char *,__int64)" ([email protected]@@[email protected])
1>regdialog.obj : error LNK2001: 无法解析的外部符号 "protected: virtual __int64 __thiscall QAbstractSocket::readLineData(char *,__int64)" ([email protected]@@[email protected])
1>login.obj : error LNK2001: 无法解析的外部符号 "protected: virtual __int64 __thiscall QAbstractSocket::readLineData(char *,__int64)" ([email protected]@@[email protected])
1>panel.obj : error LNK2001: 无法解析的外部符号 "protected: virtual __int64 __thiscall QAbstractSocket::readLineData(char *,__int64)" ([email protected]@@[email protected])
1>regdialog.obj : error LNK2001: 无法解析的外部符号 "protected: virtual __int64 __thiscall QAbstractSocket::writeData(char const *,__int64)" ([email protected]@@[email protected])
1>login.obj : error LNK2001: 无法解析的外部符号 "protected: virtual __int64 __thiscall QAbstractSocket::writeData(char const *,__int64)" ([email protected]@@[email protected])
1>panel.obj : error LNK2001: 无法解析的外部符号 "protected: virtual __int64 __thiscall QAbstractSocket::writeData(char const *,__int64)" ([email protected]@@[email protected])
1>regdialog.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: virtual __thiscall QTcpSocket::~QTcpSocket(void)" ([email protected]@[email protected]),该符号在函数 "public: virtual void * __thiscall QTcpSocket::`scalar deleting destructor'(unsigned int)" ([email protected]@[email protected]) 中被引用
1>login.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: virtual __thiscall QTcpSocket::~QTcpSocket(void)" ([email protected]@[email protected])
1>regdialog.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QHostAddress::~QHostAddress(void)" ([email protected]@[email protected]),该符号在函数 "private: void __thiscall regdialog::on_submitButton_clicked(void)" ([email protected]@@AAEXXZ) 中被引用
1>chatform.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QHostAddress::~QHostAddress(void)" ([email protected]@[email protected])
1>login.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QHostAddress::~QHostAddress(void)" ([email protected]@[email protected])
1>panel.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QHostAddress::~QHostAddress(void)" ([email protected]@[email protected])
1>regdialog.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall QAbstractSocket::connectToHost(class QHostAddress const &,unsigned short,class QFlags<enum QIODevice::OpenModeFlag>)" ([email protected]@@[email protected]@[email protected]@[email protected]@@@@Z),该符号在函数 "private: void __thiscall regdialog::on_submitButton_clicked(void)" ([email protected]@@AAEXXZ) 中被引用
1>login.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall QAbstractSocket::connectToHost(class QHostAddress const &,unsigned short,class QFlags<enum QIODevice::OpenModeFlag>)" ([email protected]@@[email protected]@[email protected]@[email protected]@@@@Z)
1>regdialog.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QHostAddress::QHostAddress(class QString const &)" ([email protected]@[email protected]@@@Z),该符号在函数 "private: void __thiscall regdialog::on_submitButton_clicked(void)" ([email protected]@@AAEXXZ) 中被引用
1>chatform.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QHostAddress::QHostAddress(class QString const &)" ([email protected]@[email protected]@@@Z)
1>login.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QHostAddress::QHostAddress(class QString const &)" ([email protected]@[email protected]@@@Z)
1>panel.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QHostAddress::QHostAddress(class QString const &)" ([email protected]@[email protected]@@@Z)
1>regdialog.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall QAbstractSocket::abort(void)" ([email protected]@@QAEXXZ),该符号在函数 "private: void __thiscall regdialog::on_submitButton_clicked(void)" ([email protected]@@AAEXXZ) 中被引用
1>login.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall QAbstractSocket::abort(void)" ([email protected]@@QAEXXZ)
1>chatform.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __int64 __thiscall QUdpSocket::writeDatagram(char const *,__int64,class QHostAddress const &,unsigned short)" ([email protected]@@[email protected]@[email protected]),该符号在函数 "private: void __thiscall chatform::on_sendButton_clicked(void)" ([email protected]@@AAEXXZ) 中被引用
1>panel.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __int64 __thiscall QUdpSocket::writeDatagram(char const *,__int64,class QHostAddress const &,unsigned short)" ([email protected]@@[email protected]@[email protected])
1>panel.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: bool __thiscall QUdpSocket::bind(unsigned short)" ([email protected]@@[email protected]),该符号在函数 "public: void __thiscall panel::init(void)" ([email protected]@@QAEXXZ) 中被引用
1>panel.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QUdpSocket::QUdpSocket(class QObject *)" ([email protected]@[email protected]@@@Z),该符号在函数 "public: void __thiscall panel::init(void)" ([email protected]@@QAEXXZ) 中被引用
1>panel.obj : error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall QUdpSocket::metaObject(void)const " ([email protected]@@[email protected]@XZ)
1>panel.obj : error LNK2001: 无法解析的外部符号 "public: virtual void * __thiscall QUdpSocket::qt_metacast(char const *)" ([email protected]@@[email protected])
1>panel.obj : error LNK2001: 无法解析的外部符号 "public: virtual int __thiscall QUdpSocket::qt_metacall(enum QMetaObject::Call,int,void * *)" ([email protected]@@[email protected]@@[email protected])
1>panel.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: virtual __thiscall QUdpSocket::~QUdpSocket(void)" ([email protected]@[email protected]),该符号在函数 "public: virtual void * __thiscall QUdpSocket::`scalar deleting destructor'(unsigned int)" ([email protected]@[email protected]) 中被引用
1>panel.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __int64 __thiscall QUdpSocket::readDatagram(char *,__int64,class QHostAddress *,unsigned short *)" ([email protected]@@[email protected]@[email protected]),该符号在函数 "private: void __thiscall panel::recvMsg(void)" ([email protected]@@AAEXXZ) 中被引用
1>panel.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __int64 __thiscall QUdpSocket::pendingDatagramSize(void)const " ([email protected]@@QBE_JXZ),该符号在函数 "private: void __thiscall panel::recvMsg(void)" ([email protected]@@AAEXXZ) 中被引用
1>panel.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QHostAddress::QHostAddress(void)" ([email protected]@[email protected]),该符号在函数 "private: void __thiscall panel::recvMsg(void)" ([email protected]@@AAEXXZ) 中被引用
1>E:\QtProj\2donkey\Debug\donkeyhead-client.exe : fatal error LNK1120: 30 个无法解析的外部命令
1>生成日志保存在“file://E:\QtProj\2donkey\Debug\BuildLog.htm”
1>donkeyhead-client - 67 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

这是因为在Qt工程中未添加QtNetwork库的原因。在VS2008的Qt工程中默认只添加了Core library和GUI library两个库。

解决方法:项目属性—>右键—>Qt Project Settings—>Qt Modules界面中,勾选Network library,然后重新编译即可。

责任编辑:Qt网络模块

热门文章

首页 | 电气资讯 | 应用技术 | 高压电器 | 电气设计 | 行业应用 | 低压电器 | 电路图 | 关于我们 | 版权声明

Copyright 2017-2018 电气自动化网 版权所有 辽ICP备17010593号-1

电脑版 | 移动版 原创声明:本站大部分内容为原创,转载请注明电气自动化网转载;部分内容来源网络,如侵犯您的权益请发送邮件到[email protected]联系我们删除。