QT学习笔记之QT与Mysql连接问题
写在前面:
唉!作为JAVA实习生开发了四个月后,果断跳到了c++开发的行列;这期间不为别的,就只为心中对c++还有的那份冲动,虽然已经有两年没有碰c++,但是看到c++还是会觉得它那么可爱,所以我果断选择了c++,至死也不后悔。
出现的错误
好了,闲话不多说,下面开始正文吧!我现在遇到的的问题是QT5.X版本与Mysql连接的问题,查找百度,自杀的心都有。为毛别人都是驱动找不到等这么简单的问题,我的问题居然没有人遇到过。(T_T)
那么我遇到的是啥问题呢?
//代码如下:库文件在.h文件中
#include "hotel.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Hotel w;
QSqlDatabase::addDatabase("QMYSQL");
w.show();
return a.exec();
}
那么爆出的问题是啥捏?
main.obj:-1: error: LNK2019: 无法解析的外部符号 “_declspec(dllimport) public: __cdecl QSqlDatabase::~QSqlDatabase(void)” (__imp??1QSqlDatabase@@QEAA@XZ),该符号在函数 main 中被引用
main.obj:-1: error: LNK2019: 无法解析的外部符号 “_declspec(dllimport) public: static class QSqlDatabase __cdecl QSqlDatabase::addDatabase(class QString const &,class QString const &)” (__imp?addDatabase@QSqlDatabase@@SA?AV1@AEBVQString@@0@Z),该符号在函数 main 中被引用
main.obj:-1: error: LNK2001: 无法解析的外部符号 “_declspec(dllimport) public: static char * QSqlDatabase::defaultConnection” (__imp?defaultConnection@QSqlDatabase@@2PEADEA)
然后一脸蒙蔽,对不对?百度无数,都他么要么避而不答,要么文不对题。唉,不愧是一区的百度,后来在即将放弃的时候,搜索找到了答案。
//代码如下:
#-------------------------------------------------
#
# Project created by QtCreator 2017-02-09T21:47:21
#
#-------------------------------------------------
QT += sql
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = Hotel
TEMPLATE = app
SOURCES += main.cpp\
hotel.cpp
HEADERS += hotel.h
FORMS += hotel.ui
这个信息是在.pro文件中的,只需要加上这句就可以了 【QT += sql】(我他么打上括号,妈的气死我了),这是在QTCreator里面的;
在VS中开发的解决办法
是我鲁莽了,原来vs中的解决办法又是另外一套,吓得我直接跪在了地上(T_T)(亲爱的网友别打我,昨晚是我错了)
如果是在VS里面的话,需要这么做,右击你的项目,选择QT Project Setting,就像这样的
然后在新打开的页面里面点击QT modules选项卡,然后在下面的一大堆的复选框中找到SQL,勾选上就可以了。好简单的感觉,害得你爸爸我差点把我做的半成品给完废了(T_T)。
好了,到此,两种工具的问题的解决办法都在这里了,有什么问题随时候教哦!
另外libmysql.dll和.lib文件也要放到qt的 安装目录的bin文件夹下,我是提前放了的,所以不知道去掉后是什么错误,这里就不罗列了。
好了,就这样了,祝大家少加班,多拿工资吧!