目录
- 问题记录
- 链接MySQL[使用参考](https://blog.csdn.net/kilotwo/article/details/79248657)
- 调用dll动态链接库 [使用参考](https://blog.csdn.net/qq_34837137/article/details/52277447)
- .pro文件说明[参考](https://blog.csdn.net/caomin1hao/article/details/80388523)
- qt5打包程序(将编译的exe打包成一个可单独执行的exe文件) [具体步骤参考](https://blog.csdn.net/windsnow1/article/details/78004265)
- vs中嵌入qt [使用参考](https://blog.csdn.net/lhl1124281072/article/details/80023787)
- Qt封装MySQL的简单接口
问题记录
报错“该文件包含不能在当前代码页(936)中表示的字符。”
原因 :因为傻逼微软的VS不能识别你的字符编码。
解:大骂两句“微软傻逼”。然后把源代码的字符编码弄成有BOM的UTF-8编码。注意一定要有BOM。
然后在第一行加上 #pragma execution_character_set(“utf-8”)
报错“常量中出现换行符”,但是我哪有换行符?
原因:你确实没有换行符,但是由于VS字符编码识别错误,导致你的某个汉字被拆开成几个字节,某个字节又被误识别成了换行符。
解:大骂两句“微软傻逼”。然后解决方案同上。
报错“语法错误,缺少)”或者“缺少}”等等。
原因:你确实没有缺少括号符,但是由于VS字符编码识别错误,VS把你的某个汉字的最后一个字节与括号拼接起来,识别成一个汉字。于是括号就没了。
解:大骂两句“微软傻逼”。然后解决方案同上。
报错:新增一个文件或者库什么的,编译时报错。
原因:Makefile文件没有更新。
解:清除----------重新执行qmake------重新构建 或者 删除编译生成的文件夹,重新运行。
报错:Unknown debugger type "No Engine"。
原因:出现在使用msvc编译器,qt中没有相应的调试器。
解:Look here
问题:Qt中使用cout,cin在窗口没有输出或者vs嵌入qt时使用cout没有输出 。
原因:…。
解:vs 项目-属性-链接器-系统-子系统 -将选项改为控制台
qt 更改后如有问题,在.pro文件中添加CONFIG += console
报错:ui中新添加了控件,但cpp文件使用时提示无此对象"。
原因:
解:右击项目名,点构建
报错:sql相应头文件提示找不到,。
原因:.pro文件中没有添加sql。
解:
链接MySQL使用参考
打开MySQL:
#include <QMessageBox>
#include <QSqlDatabase>
bool openMysql(){
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("mydata"); //这里输入你的数据库名
db.setUserName("root");
db.setPassword(""); //这里输入你的密码
if (!db.open()) {
QMessageBox::critical(0, QObject::tr("无法打开数据库"),"无法创建数据库连接! ", QMessageBox::Cancel);
return false;
return false
}
报错:QSqlDatabase: QMYSQL driver not loaded
原因一:缺少libmysql.dll
解决:从 X:\MySQL\lib中将 libmysql.dll 文件复制X:\Qt\Qt5.6.1\5.6\mingw49_32\bin中。运行程序
原因二:Qt Creator与MySQL位数不统一
解决:打开MySQL控制台 ,输入show variables like ‘%version_%’;即可查看MySql位数。
下载mysql-connector-c,在其lib目录中找到文件“libmysql.dll”。然后将这个文件复制到Qt的bin目录下,重启Qt Creator后重新打开工程就可以正确运行了。 总之,必须保证你拿到libmysql.dll这个文件对应的mysql的位数必须与QT的位数相同。
具体原因
换一个编译器,目测使用msvc2017 32bit的编译器编译会有问题(将相应的libmysql.dll复制到exe生成目录下,附libmysql.dll文件),msvc2017 64bit与mingw没有问题
还有问题的话,自己编译dll链接库,参考1 参考2 参考3 参考4