在linux下使用linuxdeployqt发布Qt程序

一、准备工作

    1、修改环境变量,能够找到qmake,可以修改/etc/profile也可以修改.bashrc文件

export PATH=/home/dingjing/Qt5.10.1/5.10.1/gcc_64/bin:$PATH #自己Qt安装的位置
export LD_LIBRARY_PATH=/home/dingjing/Qt5.10.1/5.10.1/gcc_64/lib:$LD_LIBRARY_PATH #找到Qt相关的lib,下面的雷同
export QT_PLUGIN_PATH=/home/dingjing/Qt5.10.1/5.10.1/gcc_64/plugins:$QT_PLUGIN_PATH
export QML2_IMPORT_PATH=/home/dingjing/Qt5.10.1/5.10.1/gcc_64/qml:$QML2_IMPORT_PATH

    2、下载linuxdeployqt

链接:https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage
    下载好后拷贝到Linux中就可以用

二、进行操作

    1、运行qt生成release版本的执行文件(二进制文件),例如test

    2、创建文件夹,文件夹名称最好是用程序的名字,然后将test文件复制到此文件下

    3、用linuxdeployqt进行打包,一定要加上-appimage选项,在打包前一定要确定所有的库文件都能自动索引到

例如:./linuxdeployqt-continuous-x86_64.AppImage test -appimage

    4、修改desktop等文件,这个时候程序基本上就打包好了

三、问题解决(本人遇到的)

    1、linuxdeployqt权限问题

        因为打包时会到根目录下copy文件,所以最好给linuxdeployqt最高权限,或者在root用户下运行,都可以

    2、libpq.so.5 => not found

        因为libpq.so是依赖postgresql存在的,所以要安装postgresql

sudo apt-get install postgresql

        感谢https://blog.csdn.net/silenceray/article/details/60571721给的参考

    3、打包好,如果项目中有MySQL,拷贝到其他机器上:QSqlDatabase: QMYSQL driver not loaded

        将之前手动编译好的libqsqlmysql.so文件复制到项目文件的lib里

        需要重新编译的参考:https://blog.csdn.net/zjx18915341085/article/details/79570883

        然后修改环境变量,将项目文件下的lib等路径写在.bashrc或者profile文件中

export LD_LIBRARY_PATH=/home/Ubuntu/test/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/home/Ubuntu/test/plugins:$QT_PLUGIN_PATH
export QML2_IMPORT_PATH=/home/Ubuntu/test/qml:$QML2_IMPORT_PATH
        修改完一定要source一下,然后ldd  libqsqlmysql.so看看是否还有not found的


感谢:https://www.cnblogs.com/findumars/p/6935231.html给的参考

感谢:https://blog.csdn.net/WMX843230304WMX/article/details/78748835给的参考

你可能感兴趣的:(Linux,QT,MySQL)