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

最近一直在学习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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值