linuxmint 执行 qmake 报错

最近用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)

但在执行: 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,成功。

你可能感兴趣的:(C&C++$Asm)