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笔记_day08

    1.文件权限管理 1)chown:改变文件属主(只有管理员才能使用这个命令)(change owner) chown USERNAME file... -R :修改目录以及内部文件的属主 --refe ...

  2. Centos6.5下rsync+inotify的配置详解

    Centos 6.5配置rsync+inotify实现文件实时同步 1.安装rsync(两台机器执行相同的步骤) yum install gcc yum install rsyncd xinetd - ...

  3. Windows修改默认远程端口号3389

    1.打开注册表:运行-regedit: 2.HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\Wds\Repwd\ ...

  4. Apache+jboss群集优化

    故障现象: 俩台服务器jboss做的Apache群集,之前优先访问A,造成大量session都在A上有报警. 调整 调整Apache 配置jboss集群参数,将Node2的worker.node2.l ...

  5. 百度编辑器ueditor 字符限制

    百度编辑器ueditor 字符限制 默认只能输入10000个字符 修改 ueditor.config.js // ,wordCount:true //是否开启字数统计 // ,maximumWords ...

  6. oracle日期、转换函数

    转换函数 日期类型转换成字符类型 select to_char(sysdate) s1, --14-3月 -16        to_char(sysdate, 'yyyy-mm-dd') s2, - ...

  7. 关于阿里云和ucloud云服务器负载均衡器slb和ulb会话保持的配置

    在阿里云slb或者ucloud的ulb上对公司网站后台做了负载均衡以后,发现经常需要重新登录,单独访问没有这样的问题,问题就出在session的保持上,在云控制台中有配置会话的相关选项 阿里云的配置 ...

  8. IPsec学习笔记

    IPsec是什么 IPsec(IP Security)是一系列为IP通信提供安全性的协议和服务的集合,工作在IP层,可以为上层协议和应用提供透明的安全服务.IPsec提供两种安全机制:认证和加密. 认 ...

  9. Laravel 自定义创建时间、更新时间字段

    Model 中,如果启动了 timestamps public $timestamps = true; 默认,laravel 会操作对应数据表的 created_at, updated_at 字段. ...

  10. NOIP 2000 计算器的改良

    题面 NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能.实验室将这个任务交给了一个刚进入的新手ZL先生. 为 ...