红联Linux门户
Linux帮助

linuxmint执行qmake报错

发布时间:2017-01-13 09:38:36来源:linux网站作者:WalsonTung
最近用Qt开发一个小项目,项目中调用MySQL数据库。但调用失败。
QSqlDatabase: QMYSQL driver not loaded  
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7  
 
经网上搜索,找到解决方案:Qt 5.1.0 on Ubuntu Linux, MySQL数据库报错 (driver not loaded)
linuxmint执行qmake报错
 
但在执行: sudo qmake 时又报错:
qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or director  
 
经检查发现:目录/usr/lib/x86_64-linux-gnu/qt4下无bin文件夹,更无qmake文件。
再从网上查询,发现qt开发环境有一个默认执行目录设置。
即在目录/usr/lib/x86_64-Linux-gnu/qt-default/qtchooser/下有个default.conf配置文件,修改配置文件,即可改变默认的qmake路径。
 
原来为:
/usr/lib/x86_64-linux-gnu/qt4/bin  
/usr/lib/x86_64-linux-gnu  
修改为:
/opt/Qt5.6.0/5.6/gcc_64/bin  
/opt/Qt5.6.0/5.6/gcc_64  
 
再执行:
sudo qmake
成功执行Qt5.6.0下面的qmake,生产Makefile文件。
 
通过sudo make编译mysql.pro项目生成libqsqlmysql.so。同样出错:
/usr/bin/ld: cannot find -lmysqlclient_r  
即找不到libmysqlclient_r.so文件。
 
经检查,发现安装mysql时,所有的libmysqlclient文件都安装在/usr/lib/x86_64-linux-gnu/下面,我安装的最新版本为libmysqlclient.so.20。
检查qmake生成的Makefile文件,发现命令 -rdynamic -L/usr/lib64/mysql -lmysqlclient_r,即在/usr/lib64/mysql目录下找libmysqlclient_r.so文件。
 
所以通过如下指令创建链接:
ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20 /usr/lib64/mysql/libmysqlclient_r.so
修改/etc/ld.so.conf配置文件,新行添加/usr/lib64/mysql
保存。再次之心sudo make,成功。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/27759.html