最近一直在学习Qt,用Qt写了一个程序,但是不知道怎么发布,网上说的都是在windows下怎么发布Qt应用程序,但是,在windows下Qt应用程序依赖的库文件与linux下的名字不同。于是,我就想到Linux下有没有这么一个命令,能够找到一个可执行文件运行时所依赖的库文件,百度一下,还真的有ldd命令。

ldd的作用是打印可执行文件依赖的共享库文件,它是glibc的一部分:

root@zhangyingxiu-K43SJ:~# ldd --help

Usage: ldd [OPTION]... FILE...

--help              print this help and exit

--version           print version information and exit

-d, --data-relocs       process data relocations

-r, --function-relocs   process data and function relocations

-u, --unused            print unused direct dependencies

-v, --verbose           print all information

For bug reporting instructions, please see:

.

root@zhangyingxiu-K43SJ:~# ldd --version

ldd (Ubuntu EGLIBC 2.17-0ubuntu5.1) 2.17

版权所有 (C) 2012 Free Software Foundation, Inc.

这是自由软件;请参考原始码的版权声明。本软件不提供任何担保,甚至不会包括可售性或适用于任何特定目的的担保。

由 Roland McGrath 和 Ulrich Drepper 编写。

但是,我在网上查资料发现ldd本身不是一个程序,而仅是一个shell脚本,所以自己在ubuntu13.04上查找了一下:

root@zhangyingxiu-K43SJ:~# which ldd

/usr/bin/ldd

root@zhangyingxiu-K43SJ:~# ls -al /usr/bin/ldd

-rwxr-xr-x 1 root root 5267  9月 30 22:56 /usr/bin/ldd

root@zhangyingxiu-K43SJ:~# file  /usr/bin/ldd

/usr/bin/ldd: Bourne-Again shell script, ASCII text executable

现在已经知道ldd的本质,更多ldd的用法可以百度。于是我运行命令查看动态库:

root@zhangyingxiu-K43SJ:/mywork/mytest/myqq# ldd MYQQ

linux-gate.so.1 =>  (0xb77a6000)

libQt5Widgets.so.5 => /usr/lib/i386-linux-gnu/libQt5Widgets.so.5 (0xb717b000)

libQt5Sql.so.5 => /usr/lib/i386-linux-gnu/libQt5Sql.so.5 (0xb713d000)

libQt5Network.so.5 => /usr/lib/i386-linux-gnu/libQt5Network.so.5 (0xb6fff000)

libQt5Gui.so.5 => /usr/lib/i386-linux-gnu/libQt5Gui.so.5 (0xb6c21000)

libQt5Core.so.5 => /usr/lib/i386-linux-gnu/libQt5Core.so.5 (0xb67ee000)

libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb6705000)

libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb66e8000)

libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb6533000)

libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb6518000)

libgobject-2.0.so.0 => /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 (0xb64c8000)

libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xb63c7000)

libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xb6290000)

libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb624c000)

libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb6233000)

libpng12.so.0 => /lib/i386-linux-gnu/libpng12.so.0 (0xb620a000)

libGL.so.1 => /usr/lib/nvidia-310/libGL.so.1 (0xb612a000)

libicui18n.so.48 => /usr/lib/i386-linux-gnu/libicui18n.so.48 (0xb5f56000)

libicuuc.so.48 => /usr/lib/i386-linux-gnu/libicuuc.so.48 (0xb5df0000)

libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb5deb000)

librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb5de2000)

/lib/ld-linux.so.2 (0xb77a7000)

libffi.so.6 => /usr/lib/i386-linux-gnu/libffi.so.6 (0xb5ddb000)

libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb5d9a000)

libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xb5d77000)

libnvidia-tls.so.310.44 => /usr/lib/nvidia-310/tls/libnvidia-tls.so.310.44 (0xb5d73000)

libnvidia-glcore.so.310.44 => /usr/lib/nvidia-310/libnvidia-glcore.so.310.44 (0xb4051000)

libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xb403f000)

libicudata.so.48 => /usr/lib/i386-linux-gnu/libicudata.so.48 (0xb2ece000)

libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xb2ec9000)

libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xb2ec2000)

然后,把Qt应用程序运行时需要的Qt库文件:libQt5Core.so.5.0.1,libQt5Gui.so.5.0.1,libQt5Network.so.5.0.1,libQt5Sql.so.5.0.1,libQt5Widgets.so.5.0.1拷贝到与可执行文件相同的文件夹下,然后打包压缩,就可以拿到其他的linux系统下运行了。注意:以上显示的库文件很多都是软链接文件,所以要到相应文件夹中找到真正的库文件。

http://blog.csdn.net/zyx_linux/article/details/20067335

gl linux qt 库_Linux下Qt应用程序的发布(使用LDD命令查看所有依赖的库文件)相关推荐

  1. linux 安装qt mysql库_Linux下QT平台Mysql数据库开发环境配置

    This doucment is about how to add mysql driver into QT and about database connections     由于之前安装RedH ...

  2. logo qt添加_linux下如何给qt程序添加图标?

    Linux下Qt程序打包发布并设置图标 之前整理过一篇文章是关于Windows下Qt打包发布与设置环境变量的,那篇文章里面Qt发布的程序是没有设置应用程序图标的,之后会再整理一篇文章的,顺便测试下使用 ...

  3. linux怎样自制库_linux 下动态链接库的制作与使用

    linux 下动态链接库的制作与使用 动态链接库*.so的编译与使用- - 动态库*.so在linux下用c和c++编程时经常会碰到,最近在网站找了几篇文章介绍动态库的编译和链接,总算搞懂了这个之前一 ...

  4. linux 字符串截取_linux下可执行文件分析

    一 背景 也许大家都遇到过这种场景,就是有二进制代码,比如深度分析下此文件到底是什么格式的图片等,这篇文章就记录我分析下二进制可执行文件的过程,已经自己读写二进制文件的一些坑.分析的二进制执行文件为l ...

  5. lua qt 编译_Win32下 Qt与Lua交互使用(一):配置Qt下Lua运行环境

    偶然间看到Lua这种脚本语言,有点兴趣,简单学习了一下.html 发现Lua与C++之间能够实现很是强的交互性.Lua中能够使用C++中的函数,C++中也能够使用Lua中的函数.由此能够引起出不少奇思 ...

  6. linux mmap实例_Linux下通过共享内存和mmap实现进程间通讯(含实例)

    前言 最近在学习GNU/Linux内核,看到mmap的时候书上说: mmap/munmap接口函数是用户最常用的两个系统调用接口,无论是在用户程序中分配内存.读写大文件.链接动态库文件,还是多进程间共 ...

  7. linux python版本_linux下更新Python版本并修改默认版本

    linux下更新Python版本并修改默认版本,有需要的朋友可以参考下. 很多情况下拿到的服务器python版本很低,需要自己动手更改默认python版本 1.从官网下载python安装包(这个版本可 ...

  8. emmc linux 识别分区_linux下给U盘分区并制作文件系统

    初探 不同于Ubuntu/Win等桌面发行版本,服务器型(非图形化系统)的linux系统通常不主动挂载U盘,因此当U盘插入后是不会有任何提示的,那我们如何知道U盘是否被系统所识别呢? 那就只能查看系统 ...

  9. linux video属性_Linux 下Video 的制作方法

    1.这里我用的内核是linux-2.6.32.59 版本的,首先在www.kernel.com中下载这个内核 2.下载完毕之后拷贝到Linux中进行解压,tar jxvf linux-2.6.32.5 ...

最新文章

  1. boost::stl_interfaces模块实现节点迭代器的测试程序
  2. Raspberry PI 系列 —— 裸机点亮LED灯
  3. python列表的内置方法_Python内置方法详解
  4. 去贵阳参观大数据到哪参观_您必须参观的四个世界
  5. java+解析未知json_在Java中解析JSON时如何忽略未知属性– Jackson @JsonIgnoreProperties注释示例...
  6. [转载]拉格朗日乘子法如何理解?
  7. python编写一个函数判断一个数是否为素数是则返回yes_编写函数isPrime,判断一个数字是否为素数,是则返回字符串 YES ,否则返回字符串 NO 。_学小易找答案...
  8. [转]一个程序员的哲学思考(关于编程、关于人生)
  9. 海量数据挖掘MMDS week7: 相似项的发现:面向高相似度的方法
  10. ArcGIS 视域分析
  11. 安卓游戏源码-android游戏源码开发-android游戏开发
  12. form表单提交serialize()方法和
  13. java读取excrl模板填充数据_java中自定义excel模板并且填充内容
  14. HTML5里video标签支持哪些格式的视频文件及其遇到的坑
  15. PS初学者(非设计专业人士)的碎碎念
  16. java128分解质因数_java分解质因数
  17. 计算机组成原理平均cpi怎么算_计算机组成原理 第1--4章
  18. 2022年中式烹调师(初级)考试题库及在线模拟考试
  19. jump-game-ii
  20. 小学六年级计算机考试知识点总结,小学六年级数学毕业考试必备考点总结

热门文章

  1. 2010上海各区排行按繁华程度
  2. SQL中附加的基本运算
  3. 邮箱发送附件 附件大小有限制
  4. java的生活状态,生活状态 - Dorian's Blog - BlogJava
  5. 有一个计算机可以知道手机密码,要不是他,你根本不会忘记密码
  6. 洛谷 P1007独木桥 C语言
  7. oracle apex接口文件,Oracle_APEX开发指南
  8. CSS首字母下沉怎么设置?
  9. App Inventor 微数据库记录分数并排序
  10. matlab图像处理学习笔记