`

Qt mysql相关

    博客分类:
  • Qt
 
阅读更多
sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient15-dev

在centos下则
yum install mysql mysql-server [mysql-devel,mysql-client] 等等

安装libevent
centos: yum install

接下来进入QT存放mysql驱动源码的目录,其中$QDIR为你安装的QT的路径
cd $Q
TDIR/
src/
plugins/
sqldrivers/
mysql执行qmake操作生成makefile

qmake "INCLUDEPATH+=/usr/include/mysql"
"LIBS+=-L/usr/lib/mysql -lmysqlclient_r"
mysql.
pro注意INCLUDEPATH是你mysql.h文件的路径,lib是你mysql库的路径
然后执行make操作生成libqsqlmysql.so

make最后执行

make install即可在$QTDIR/plugins/sqldrivers/中看到生成的libqsqlmysql.so
安装成功。


mysql -u root -p
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setDatabaseName("testdb");
    db.setUserName("root");
    db.setPassword("123456");
    if(db.open()){
        qDebug() << "success open";
    }


配置就是这样的了,但是在centos下弄了半天都没成,在我的ubuntu下10分钟连在线下载一起搞定。郁闷啊,最后只有装了个QtSDK再配置了次,参考这位的安装方法
http://blog.csdn.net/tangjie200566/article/details/6278569

避免安装QT SDK 出现错误/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found

执行ls -l  /usr/lib/libstdc++.so.6
发现/usr/lib/libstdc++.so.6 -> /usr/lib/libstdc++.so.6.0.8,其实这里需要使用libstdc++.so.6.0.10

下载此文件 然后删除之前的连接unlink /usr/lib/libstdc++.so.6 ,把下载的文件复制的目录/usr/lib

创建新的连接ln -s /usr/lib/libstdc++.so.6.0.10  /usr/lib/libstdc++.so.6

安装QT SDK  http://qt.nokia.com/downloads/sdk-linux-x11-32bit-cpp

安装eclipse QT 插件

         http://get.qt.nokia.com/qteclipse/qt-eclipse-integration-linux.x86-1.6.1.tar.gz

  SRC http://get.qt.nokia.com/qteclipse/qt-eclipse-integration-linux.x86-1.6.1-src.tar.gz

然后创建测试项目时候出现以下两个问题:

/opt/qtsdk-2010.05/qt/lib/libQtGui.so: undefined reference to `FT_Library_SetLcdFilter'
make: Leaving directory `/opt/qtsdk-2010.05/qt/examples/linguist/hellotr-build-deskto

解决办法:安装这两个包

下载 freetype http://download.savannah.gnu.org/releases/freetype/

下载 fontconfig http://www.freedesktop.org/software/fontconfig/release/

给表增加字段:
alter table test add column times datetime not null;

插入时间字段:
INSERT INTO TEST VALUES(1,'12:12:12');
如果要当前时间则
insert INTO TEST VALUES(1,CURTIME());

如果不止时间,还有日期的话,如:
TEST(C INT,D DATETIME)
则:
INSERT INTO TEST VALUES(1,'1999-9-9 12:12:12');
如果要当前日期时间则
insert INTO TEST VALUES(1,now());

关于程序发布后,如果客户机没装qt,找不到mysql驱动的问题,以及图片显示不出来的问题:
1.在生成的程序目录下加上sqldrivers这个目录,然后在里面加上libqsqlmysql.so
2.如果不显示图片,而在生成的程序目录下加上imageformats,加上libqico.so(我用的是ico图片,其它可在qt的imageformats下找到)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics