Qt linux发布遇到的问题

Qt linux发布遇到的问题

标签(空格分隔): Qt


安装Qt

我安装的是32位版的Ubuntu,因此安装的是Qt5.5.1 ,32位版。安装及时候记得勾选上源码,默认是不安装的。

QMySqlDrive not loaded问题

Qt程序中有用到MySql,但程序运行时发现QMySqldrive not loaded的问题。
去网上查了好多,最终是这一篇帮我解决了问题。CentOS7 (64位) 下QT5.5 连接MySQL数据库
去Qt的安装目录里查看下依赖,我这里是
/home/Qt5.5.1/5.5/gcc/plugins/sqldrivers
执行命令

ldd libqsqlmysql.so | grep not

结果中有3个not found

libmysqlclient_r.so.16 =>not found
libssl.so.10 =>not found
libcrypto.so.10 =>not found

libmysqlclient_r.so.16

如同上面的文档中所说,/usr/lib/下的共享库版本比较高是libmysqlclient.so.18,而Qt的依赖是16版本。
这意味着我们需要自己编译一下。
qtbase/src/plugins/sqldrivers/mysql/
然后执行
•qmake
•make

qmake

执行qmake的时候遇到一个版本问题
系统提示没有qmake,要求安装qt4-qmake
安装之后,执行qmke一直报错(报错结果忘了),查了好久结果是qmake版本问题
去到/usr/bin删除安装的qt4-qmake
并且发现在该目录下的qmake快捷方式链接到了/etc/alternatives/qmake

去到Qt的安装目录Qt5.5.1/5.5/gcc/bin下面,将里面的qmake拷到/etc/alternatives,然后执行qmake
问题解决

make

make过程中报了

/usr/bin/ld: cannot find -lssl
/usr/bin/ld: cannot find -lcrypto

这俩直接apt-get即可

apt-get install libxxx-dev

然后执行make
这里文档中有一句

再次make,成功。当然这还没有完,用新的libqsqlmysql.so去替换旧的,这就全部完成了。

这里我没有找到新的libqsqlmysql.so,其实这里不需要copy,
直接再执行make install即可

make install 完成之后
z再去去Qt的安装目录里查看下依赖/home/Qt5.5.1/5.5/gcc/plugins/sqldrivers
执行命令

ldd libqsqlmysql.so 

发现所有依赖都有了,完成。

你可能感兴趣的:(Qt)