1.现象
在连接数据库的时候出现
./hello-pc
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
2.趟过的坑
ldd 查看plugins 下的动态库
/gcc_64/plugins/sqldrivers$ ldd libqsqlmysql.so
libmysqlclient_r.so.16 => not found
于是开始百度 发现有的说
libmysqlclient_r.so.16 复制一下 变成 libmysqlclient_r.so.18 亦或 ln -s
然并卵
还折腾过装过不计其数的pakage
my times
3.真正有效的解决方案
在安装Qt的时候请全部选择安装
/opt/Qt5.3.1/5.3/Src/qtbase/src/plugins/sqldrivers$ ls
db2 ibase mysql oci odbc psql qsqldriverbase.pri README sqldrivers.pro sqlite sqlite2 tds
pc@pc:/opt/Qt5.3.1/5.3/Src/qtbase/src/plugins/sqldrivers$ cd mysql/
pc@pc:/opt/Qt5.3.1/5.3/Src/qtbase/src/plugins/sqldrivers/mysql$ ls
main.cpp mysql.json mysql.pro README
pc@pc:/opt/Qt5.3.1/5.3/Src/qtbase/src/plugins/sqldrivers/mysql$ qmake
pc@pc:/opt/Qt5.3.1/5.3/Src/qtbase/src/plugins/sqldrivers/mysql$ make
************************************************
g++ -Wl,--no-undefined -Wl,-O1 -Wl,-rpath,/opt/Qt5.3.1/5.3/gcc_64 -Wl,-rpath,/opt/Qt5.3.1/5.3/gcc_64 -Wl,-rpath,/opt/Qt5.3.1/5.3/gcc_64/lib -shared -o libqsqlmysql.so .obj/main.o .obj/qsql_mysql.o .obj/moc_qsql_mysql_p.o -Wl,-Bsymbolic-functions -rdynamic -L/usr/lib/mysql -lmysqlclient_r -L/opt/Qt5.3.1/5.3/gcc_64/lib -lQt5Sql -lQt5Core -lpthread
mv -f libqsqlmysql.so ../../../../plugins/sqldrivers/
把生成的 libqsqlmysql.so拷贝到 /opt/Qt5.3.1/5.3/gcc_64/plugins/sqldrivers/目录下
$
$cp libqsqlmysql.so /opt/Qt5.3.1/5.3/gcc_64/plugins/sqldrivers/
$运行程序 OK
3qu,have any q please call me