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

发布结束

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

[置顶] Linux下发布QT程序的更多相关文章

  1. [置顶] Linux下的截图小工具

    Linux下的截图工具scrot 基于命令行 先下载:scrot apt-get install scrot 对该工具的操作: 分为以下几个部分 1.抓取整个桌面 scrot pic.jpg 2.抓取 ...

  2. [置顶] Linux下文件和目录权限说明

    在Linux下使用ls -l或者ll命令可以查看文件和文件夹的权限.结果显示类似于: drwxrwxrwx,这里分为四组,分别为文件类型,文件所有者的权限(读写执行),文件所有者所在组用户的权限(读写 ...

  3. [置顶] linux下让php支持mysql——寻找消失的mysql

       问题 最近我都在忙一个课件录制系统.这两天发现其中服务器端的一个更新数据库的php脚本运行有问题,一些本应该是系统自带函数却无法运行.于是我展开了调查... 服务器端是centos系统,其中ph ...

  4. [置顶] Linux下将Nutch1.3导入eclipse

    1.准备工作 首先去官网下载好 apache-nutch-1.3-bin.zip 解压apache-nutch-1.3-bin.zip [pig@CentOs ]$ unzip   apache-nu ...

  5. 在Linux下使用linuxdeployqt发布Qt程序

    一.简介 linuxdeployqt 是Linux下的qt打包工具,可以将应用程序使用的资源(如库,图形和插件)复制到二进制运行文件所在的文件夹中. 二.安装linuxdeployqt 去github ...

  6. linux下对qt编写的程序进行部署

    当我们完成程序设计之后,需要将可执行程序交付客户,而运行环境里面可能是没有相关支持库的,这个时候就涉及到部署的相关问题.对于我们在Linux下基于QT编写的图像处理程序,我们采用linuxdeploy ...

  7. Linux环境中Qt程序的手工发布

    Linux环境中Qt程序的手工发布

  8. 关于在windows下部署发布QT程序的总结

    原文请看:http://www.cnblogs.com/javaexam2/archive/2011/05/18/2632916.html 关于在windows下部署发布QT程序的总结 2008-06 ...

  9. linux下的qt串口通信

    1.linux下的qt串口通信跟windows唯一的差别就是端口号的名字,windows下面是COM,而linux是ttyUSB0的路径 2.一般情况下linux插上USB转串口线就可以在/dev/目 ...

随机推荐

  1. 【Linux高级驱动】input子系统框架【转】

    转自:http://www.cnblogs.com/lcw/p/3802617.html [1.input子系统框架(drivers\input)] 如何得出某个驱动所遵循的框架?    1) 通过网 ...

  2. 微信小程序调用接口返回数据或提交数据

    由于小程序发起网络请求需要通过 wx.request 文档地址 https://mp.weixin.qq.com/debug/wxadoc/dev/api/network-request.html 习 ...

  3. SQLServer xp_instance_regread returned error 5,Access is denied(配置最小权限)

    公司一套智能巡检系统,客户需要最小的权限去给这套系统使用:配置完后发现很多权限报错,有一条是关于xp_instance_regread读系统注册表error 5的报错.常理error 5.是属于系统权 ...

  4. 转载 http://blog.csdn.net/dengta_snowwhite/article/details/6418384

    从SDCard保存的txt文件读取中文到android系统中会出现乱码问题,如何解决这个乱码问题,网上有不少解答方法,譬如说利用String temp1 =EncodingUtils.getStrin ...

  5. Java学习--编译器javac

    Java的源程序为.java文件, 编译后生成.class文件(字节码文件); javac(java compiler的简写)是java语言的编译器. Hello.java public class ...

  6. 【转】使用TCP协议连续传输大量数据时,是否会丢包,应如何避免?

    使用TCP协议连续传输大量数据时,是否会丢包,应如何避免? 比如发送文件.记得有人提过可能会发生什么堆栈溢出.怎样避免呢?是不是可以收到数据后发送确认包,收到确认包后再继续发送.或是发送方发送了一些数 ...

  7. Servlet发送Http请求

    今日遇到一个需求,android注册,短信验证码功能. android请求我服务端,我请求tosms.cn发送验证码短信给android,于是需要在Servlet中发送Http请求 package o ...

  8. vuex 的使用

    用于多组件共享状态,如果不打算开发大型单页应用,使用 Vuex 可能是繁琐冗余的.确实是如此——如果应用够简单,您最好不要使用 Vuex.可使用简单Bus总线的方式来管理共享的数据详见(http:// ...

  9. **CI中创建你自己的类库

    http://codeigniter.org.cn/user_guide/general/creating_libraries.html 创建类库 当我们使用术语"类库"时,我们一 ...

  10. .NetCore下使用Prometheus实现系统监控和警报 (一)介绍【译】

    [译]原文https://prometheus.io/docs/introduction/overview 什么是Prometheus? Prometheus是一个开源系统监控和警报工具包,最初起源于 ...