开发过程的问题---第一部分(2019.1-2019.3)

1、Cannot find file: E:\2016--\研究生课件\机电系统分析与设计\zuoye\QSerialPort_2_Hex_1\QSerialPort_1.pro.

15:19:22: 进程"C:\Qt\Qt5.4.0_mingw\5.4\mingw491_32\bin\qmake.exe"退出,退出代码 2 。

Error while building/deploying project QSerialPort_1 (kit: Desktop Qt 5.4.0 MinGW 32bit)

When executing step "qmake"
原因是:Qt不支持中文的路径,把源码的路径全部改成英文即可解决问题。

QT Creator对大于带有两个空格的目录和中文命名的目录不支持!!
究其原因 应该是qmake对带有空格的目录和中文命名的目录不支持!!

2、怎样解决show databases不能正确显示的问题

(1)问题:在mysql安装好后,新手用show databases命令往往会出现如下图所示的问题,原因在于show databases后面没有加“;”,
     但是当意识到错误,添加“;”后发现还是显示如上图的错误,原因在于第一、二条命令没有输对,紧接着输入第三条命令,
     虽然第三条命令输对了,但是错误依旧会出现;

(2)解决办法:直接一次性输对show databases;命令,就不会出现上图错误了

3、qtmain.lib(qtmain_win.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in EncryptTools.obj

所选工程的运行库不匹配导致的

在工程上右键-》属性-》c/c++-》代码生成-》运行库

有四个选项及含义分别如下:

多线程调试Dll (/MDd) 对应的是MD_DynamicDebug
多线程Dll (/MD) 对应的是MD_DynamicRelease
多线程(/MT) 对应的是MD_StaticRelease
多线程(/MTd)对应的是MD_StaticDebug

?error LNK2038: 检测到“RuntimeLibrary”的不匹配项: ?值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug

从上面的错误提示可知,我们原来选择的是多线程调试Dll (/MDd)?选项 ,把它改为 ? ?多线程(/MTd) ? 即可?

4、LINK : fatal error LNK1104: cannot open file 
解决:在C:/Program Files/Microsoft Visual Studio/myprojiects下是找不到你写的工程文件的,因为在这个目录下写东西是需要管理员权限的,所以系统才会报“cannot open file”的错误,解决的办法是关闭软件,然后以管理员权限运行该软件,这样就可以完美运行调试程序了。

5、error LNK2019:unresolved external symbol
我们都知道,当我们在链接程序的时候,出现了如下错误,那是代表,程序没有找到在.h文件中定义的函数的实现。

error LNK2019:unresolved external symbol

有可能是我们自己的的库函数的lib文件没有添加正确,也有可能是系统的某个lib文件没有添加正确。
当出现这个问题的时候,首先第一步是要仔细看错误信息里面报的具体是哪一个文件里的哪一个函数的哪一个引用,比如如下错误信息:
error LNK2019: unresolved external symbol __imp__htons@4 referenced in function "public: char * __thiscall SLPAttributeRequest::A(int &)" (?GetAttributeRequestBuffer@SLPAttributeRequest@@QAEPADAAH@Z)

从上可知,是在SLPAttributeRequest::A函数中的htons这个变量没有找到对应的实现。
然后去百度htons(http://blog.youkuaiyun.com/jfkidear/article/details/7870743),发现它是出现在ws2_32.lib这个文件中的,所以我们将该lib文件,通过Project->property->linker->input->addtional dependencies,添加到工程中。

通过解决这个问题的都到了一个经验,遇到问题的时候不要想当然的觉得就是某个问题引起的,一定要先仔细分析事故现场,提取出有价值的信息,然后再做判断。?

6、VS2015超过30天显示未激活?
按他要求来,先注册一个微软账户,然后登陆,许可证自动搜索验证成功。

7、QList<QSerialPortInfo> serialList包含哪些信息?
#include <QCoreApplication>
#include <QDebug>
#include <QtSerialPort/QtSerialPort>
#include <QList>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    //实例化一个类型参数为QSerialPortInfo模板类链表
    QList<QSerialPortInfo> serialList;
    //给链表赋值为获取到的当前设备的所有串口信息的链表
    serialList = QSerialPortInfo::availablePorts();
    //输出链表头节点的一些信息
    qDebug()<< "Name : "<<serialList.first().portName();           //“com1”
    qDebug()<< "Description : "<<serialList.first().description(); //“通信端口”
    qDebug()<< "Manufacturer: "<<serialList.first().manufacturer();//“(标准通信类型)”
    qDebug()<< "Serial Number: "<<serialList.first().serialNumber();
    qDebug()<< "System Location: "<<serialList.first().systemLocation();
    return a.exec();
}

8、VS2015中创建Qt项目,需要调用串口类(QSerialPort和QSerialInfo),但无法包含头文件?
解决方法:在项目属性 -> c/c++ -> Gnerated -> Additional Include加入$(QTDIR)\include\QtSerialPort,然后就可以包含该类的头文件了(同样适用于其他的类在VS中的使用)


9、设备加密升级,注意网线是否插紧了!!!ip设置好了之后,ping一下设备,看看是否ping通,如果ip设置没问题,且ping不通,则要检查一下网线。


10、凡是通讯的东西都要考虑两方或多方。

不知道接收方是什么情况,不好说缓冲区设置多大。

就发送方而言,你把这个操作看成两大部分:

1、读文件、取数据,为发送准备数据;

2、写串行口,发送数据;

也就是说,你首先要会读文件,并且会写串行口,只有这两点都熟悉后,才能把它们结合起来做这个程序。

另外,楼主应该说说接收方是什么情况,也是计算机吗?还是设备?

其实还有一个更重要的,这就是数据校验了。

因为串行口发送数据有可能会出错,所以校验也是很重要的。

所以,要结合发送和接收方的情况,还有如何校验接收到的数据,来考虑一次发送多少数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值