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. ssh-copy-id 复制公钥到远程server

    ssh-copy-id -i ~/.ssh/mykey.pub user@host 复制完成后可以测试: ssh -i ~/.ssh/mykey user@host

  2. 乐视max2 在开发中无法打印某些logcat 解决方案

    乐视屏蔽了打印log.d等类型logcat.解决方案:拨号键盘 *#*#76937#*#* 出现页面后选最下面那个选项就有了.

  3. Vue项目中如何引用外部js

    第一种方法:(感觉这个有问题) 1.把需要的js放到static文件夹下 2.在Index.html页面引入 3.在webpack.base.conf.js添加下面代码 externals: { 'W ...

  4. linux后端诊断与调试技术

    本文不是liunx命令使用教程,也不打算全方面阐明其用法,互联网公司项目很多,服务程序之间相互依赖调用很复杂,各种因素会影响线程服务正常运行,特别是基础服务组件更是如此,当出现各种问题时,如何诊断li ...

  5. 有用的Python模块 - pprint

    当想在终端打印一个很大的字典或者一个很长的列表时,总是被print打印出来的效果气懵在电脑前,现在有pprint就不用担心啦. 最直接的使用方式就是 import pprint pprint.ppri ...

  6. [转]Mahout推荐算法API详解

    Mahout推荐算法API详解 Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeepe ...

  7. java JVM指令2

    https://www.cnblogs.com/dreamroute/p/5089513.html 指令码 助记符 说明 0x00 nop 什么都不做 0x01 aconst_null 将null推送 ...

  8. github git 无法读取远程仓库或无权限

    解决方法:重新设置ssh密钥 ssh-keygen -t rsa -C "http://github.com"//输入命令后按提示输入id_rsa.pub的存储地址 和密钥密码 地 ...

  9. VS Code折腾记 - (4) 常用必备插件推荐【前端】

    前言 这篇文章只要让你做一些基础的配置,把vscode变得更加顺手: 插件的需求不是一成不变,有些插件我已经移除了..在最新的VSCODE 1.9.1中, 部分以前用插件实现的功能已经集成了,那就没有 ...

  10. 使用IDEA搭建spring

    从前使用eclipse开发,集成jar包,现在使用maven来管理 一: 1.框架 2.pom 需要spring core与spring context. <?xml version=" ...