• [置顶] Linux下发布QT程序


    Linux下发布QT程序

    概述

            无论在windows下还是在linux下,可执行程序的运行都依赖于相关的运行库,我们需要将依赖的库找到放到特定的位置,让可执行文件能够找到。在不知道可执行文件依赖哪些库时,有时可以让它自己告诉你,例如直接运行程序会输出缺少的库名,执行ldd命令查看可执行文件的依赖库。

    所以发布程序就是将必要的文件放到指定的位置,并修改某些系统配置。

    我发布的环境为X86下的ubuntu 10.04-desktop。

    QT程序依赖的库

    在linux中,一般依赖的库会放在/usr/lib目录中,查找libQt*会显示与Qt相关的库。有些库我们的程序不需要,我们可以在命令窗口中运行程序,它会输出因为缺少哪些库而不能运行,缺少的库在/usr/lib中找到,拷贝过去即可。

    例如我的程序提示依赖libQtGui.so.4、libQtNetwork.so.4、libQtCore.so.4和libaudio.so.2这4个库。将这4个库拷贝过去,然后进入/usr/lib,执行如下命令:

    ln -slibQtGui.so.4.6.2         libQtGui.so.4

    ln -s libQtNetwork.so.4.6.2  libQtNetwork.so.4

    ln -slibQtCore.so.4.6.2       libQtCore.so.4

    ln -s libaudio.so.2.4            libaudio.so.2

    程序即可运行。

    QT中的QImage

    我的程序中使用到了QImage,程序可以正常运行,但图片不能加载。网上查找资料说QImage需要依赖plugins。对于plugins我不了解也不知道QT的安装目录(通过apt-get install安装的qt),所以我全局搜索plugins文件,选择在x86环境下的plugins。我拷贝的plugins目录在/usr/lib/qt4/目录下。将整个文件夹拷贝到目标机子上,然后将其导出。

    我的操作如下:

    Plugins目录拷贝到/usr/local/下;

    编辑/etc/profile,在文件的最后加入如下两行:

    export LD_LIBRARY_PATH=/usr/local/plugins/imageformats:$LD_LIBRARY_PATH

    export QT_PLUGIN_PATH=/usr/local/plugins

    发布结束

    发布完成后运行程序,一切正常。

  • 相关阅读:
    使用Swagger为ASP.NET Core WebApi生成API文档
    TypeScript入门笔记(五)
    TypeScript入门笔记(四)
    TypeScript入门笔记(三)
    .net core WebAPI+EF 动态接收前台json,并动态修改数据库
    记走出自动化部署的第一步
    工厂模式
    使用bootstrap fileinput多文件拖拽上传的记录
    判断登录跳回原地址方法
    使用Microsoft Teams 搭建远程视频
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3249118.html
Copyright © 2020-2023  润新知