当前位置:  技术问答>linux和unix

linux共享库调用求助

    来源: 互联网  发布时间:2016-10-09

    本文导语:  刚开始linux编程,有个编程过程中遇到的问题希望得到各位的帮助:  在连接程序时,我使用-l参数指定了要连接的共享库库名为QtGui,根据我的理解, 连接时应该去寻找-L参数指定路径下的libQTGui.so这个文件,连接时我将此文...

刚开始linux编程,有个编程过程中遇到的问题希望得到各位的帮助:
 在连接程序时,我使用-l参数指定了要连接的共享库库名为QtGui,根据我的理解, 连接时应该去寻找-L参数指定路径下的libQTGui.so这个文件,连接时我将此文件删除,报无法连接,证明我的想法是正确的。
可是在运行程序时(使用LD_LIBRARY_PATH环境变量加载共享库路径),如果仍将上述文件删除,程序依然能正常运行,经过折腾发现,运行时找的时libQTGui.so.4这个文件,不知道为什么。
哪位大侠能帮助解释一下么?谢谢。

|
1. 编译系统是如何转换为搜名的?
编译系统通过linker name找到了共享库,共享库中有一个字段是其soname,这就从linker name转换到了soname
2. 还有,为什么要转换为搜名?
应用程序存放soname而不是realname的目的是为了便于共享库升级,soname只包含了共享库的主版本号,主版本号相同表示两个共享库是兼容的,所以以后你的qt升级了,共享库变成了libqtgui.so.4.8.0了,由于它们的soname相同,你的程序现在使用的库是libqtgui.so.4.8.0,只需要把libqtgui.so.4指向升级后的库就可以了(这是在升级过程中由ldconfig完成的),你的程序直接就使用了升级版的qt,而不用重新编译。如果指定real name,那么升级共享库后你的程序使用的还是老版本的库,没法使用升级后功能增强或者发生了变化的库。


    
 
 

您可能感兴趣的文章:

  • Linux添加系统调用时如何调用C语言库函数
  • linux中为什么系统调用比普通函数调用更费时间?
  • 为什么我的BEAN 在WIN2000中调用没有问题,但在LINUX中调用有问题
  • 如何在LINUX下用一个普通文件调用一个自己编写的调用系统的文件
  • LINUX下系统调用是不能中断的,要怎么改造成可以中断系统调用?
  • 请问linux中的系统调用号是如何跟系统调用表对应起来的
  • 新手:Linux下使用第三方C库(openssl),是调用.so文件还是直接调用.h文件?
  • linux系统调用问题
  • 我如何调用 内核函数 /linux/fs 里面的内核 函数:比如 自己的程序调用 ext3_delete_inode
  • 关于Linux系统调用的问题!
  • 请教在linux中如何动态的增加一个系统调用(模块中)
  • Linux环境下,如何一个驱动中调用另外一个驱动
  • linux:怎么在驱动中调用IIC驱动?
  • linux下在Qt中调用flash播放器
  • 如何达到我这种linux下的系统调用效果
  • window下能否调用linux的静态库(a文件)?
  • Qt下使用Linux系统调用?
  • linux3.0.0.12内核怎么添加系统调用
  • C库函数和linux系统调用区别
  • 请问各位linux开发大虾,linux下有类似VC中depends的工具可以查看文件调用了哪些so文件吗?
  • 求助:linux下 vim的配置(高分求助)
  • 求助!为什么linux下FTP允许windows登录而不允许linux登录?在线等
  • 求助关于linux和windows引导lilo的问题
  • 求助!!怎么在linux交叉环境下移植SOAP协议?
  • 新装linux求助
  • 求助:新氧Linux中文定制版V0.1主题包
  • Opengl Linux多线程 求助
  • linux webserver求助一下
  • 100分求助:关于linux下配置sendmail的问题
  • 急求助!安装linux后重装windows的问题
  • 求助,linux下如何使用函数更改时区,例如设置美国时区 谢谢
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux 共享内存介绍及实现代码
  • 局域网共享问题:win2000的机器看不到linux机器的共享目录?
  • linux下进程间通信:共享内存原理及具体用法举例(基于c/c++语言)
  • 在linux下能不能创建一个堆,然后给堆指定一块共享内存,然后各个程序用此堆来new对象来共享?
  • 局域网共享问题:win2000的机器看不到linux机器的共享目录?解决立即给分
  • 用samba共享其它机子访问Linux共享时,机子可以进入,但要打开共享文件夹时提示“无法访问...找不到网络名。”这是什么原因呢?
  • LINUX如何映射另一台LINUX的共享目录?
  • linux linux 之间共享文件夹
  • 我想知道LINUX如何与WIN98,WIN2000共享资源?
  • XP下设置与linux 本地连接的Internet共享问题
  • 求助linux普通用户下内存共享(系统V共享)大家进来看看啊!急!!
  • 嵌入式linux下线程通信可以用共享文件法吗?
  • Unix/linux下如何监测共享内存的使用情况
  • 当别人用FTP协议访问我的LINUX时,要显示一些共享文件夹。
  • linux与windows如何实现共享
  • 老板要用linux服务器共享一些CAD文件,并且要同步更新,linux有这功能吗?
  • linux下共享内存的覆盖或清空
  • 【求助】linux下什么是共享内存,怎么查看。
  • 98的机子有modem,linux的无,能否通过共享使linux的机子都能上网?
  • linux 下如何共享使用windows下的内容
  • linux下共享内存 函数shmat()的使用!
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3