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

linux程序编译时指定的动态库没有链接进去,非常诡异

    来源: 互联网  发布时间:2017-05-29

    本文导语:  我的Makefile中的LIBS += -L./ -Wl,-rpath=/usr/lib/,-rpath=./ -lhcnetsdk -lPlayCtrl -lMPCtrl 编译后ldd -r 结果如下:         linux-gate.so.1 =>  (0xb7750000)         libhcnetsdk.so => /usr/lib/libhcnetsdk.so (0xb6e26000)         libQtGui...

我的Makefile中的LIBS += -L./ -Wl,-rpath=/usr/lib/,-rpath=./ -lhcnetsdk -lPlayCtrl -lMPCtrl
编译后ldd -r 结果如下:
       
 linux-gate.so.1 =>  (0xb7750000)
        libhcnetsdk.so => /usr/lib/libhcnetsdk.so (0xb6e26000)
        libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0xb6303000)
        libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0xb601b000)
        libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb5f25000)
        libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb5f07000)
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb5d5d000)
        librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb5d54000)
        libhpr.so => /usr/lib/libhpr.so (0xb5b31000)
        libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb5b2c000)
        libuuid.so.1 => /lib/i386-linux-gnu/libuuid.so.1 (0xb5b26000)
        libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb5b0b000)
        libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb5adf000)
        libgthread-2.0.so.0 => /usr/lib/i386-linux-gnu/libgthread-2.0.so.0 (0xb5adb000)
        libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xb59e2000)
        libpng12.so.0 => /lib/i386-linux-gnu/libpng12.so.0 (0xb59b8000)
        libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb59a2000)
        libfreetype.so.6 => /usr/lib/i386-linux-gnu/libfreetype.so.6 (0xb5908000)
        libgobject-2.0.so.0 => /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 (0xb58b8000)
        libSM.so.6 => /usr/lib/i386-linux-gnu/libSM.so.6 (0xb58af000)
        libICE.so.6 => /usr/lib/i386-linux-gnu/libICE.so.6 (0xb5895000)
        libXrender.so.1 => /usr/lib/i386-linux-gnu/libXrender.so.1 (0xb588b000)
        libfontconfig.so.1 => /usr/lib/i386-linux-gnu/libfontconfig.so.1 (0xb5857000)
        libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xb5844000)
        libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xb5710000)
        /lib/ld-linux.so.2 (0xb7751000)
        libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb56d4000)
        libffi.so.6 => /usr/lib/i386-linux-gnu/libffi.so.6 (0xb56cd000)
        libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0xb56a2000)
        libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xb5681000)
        libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xb567d000)
        libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xb5676000)

可见 -lhcnetsdk链接正常,但是 -lPlayCtrl -lMPCtrl却没有链接进去,也没有报错
运行时能正常启动。但是某些功能缺因为没有PlayCtrl无法用

|
楼主贴一下linking部分的cmdline就应该一目了然了

|
看一下你的LDPATH有没有把那两个库包括进去

|
make sure the shared lib you indicated is on ldconfig path,

if it's a newly installed, run #ldconfg to update the lib cache

    
 
 

您可能感兴趣的文章:

  • linux/centos源码安装nginx编译配置选项参数介绍
  • 嵌入式linux开发:一段代码在windows平台用VC编译运行正常,在linux平台用gcc编译运行正常,但是用arm-linux-gcc编译在嵌入式板子上运行就不正常.
  • linux 64位编译出错。linux 32位可以编译过。
  • 关于在linux交叉编译powerpc-e300c3-linux-gcc的编译问题
  • Linux下gcc编译时,如何以静态链接的形式编译?
  • linux下有没有能编译出16bit代码的C语言编译器?
  • 现要在一台Pentium100上安装LINUX操作系统,能不能不选用别的品牌的LINUX,而直接用内核编译,然后再加上编译器和SHELL等等其它东西?如
  • linux下可以编译c但是如何编译c++
  • arm-linux-gcc交叉编译出错,但gcc编译没错,什么原因呢???
  • 谁编译过PLX9054 Linux的驱动程序,我给100分教我编译和安装??
  • 何处有 Linux 内核编译配置详细的中文介绍? 我在重新配置编译时老是出错:-(
  • 想问一下,编译LINUX内核时,是否可以只编译其中的一个模块?
  • 在linux下用proc编译程序,'*.pc'文件编译后成了'*.c?',多了一个问号?
  • 请问在linux下编译程序怎么设置编译器字节对齐?
  • linux下g++怎么编译啊?我怎么编译不过去呢?
  • [提问]Linux下如何把多个.a文件编译一个.so文件,或者把多个.so文件编译成一个.so文件
  • 有人说用vc++写的程序,代码可以直接拿到linux下找编译器,就可以编译,是真的吗?
  • 在linux+x86下用交叉编译器编译出能在solaris+x86运行的文件时遇到的问题
  • linux内核编译一定要在linux环境下么?
  • 书写基于Linux内核的键盘记录器(Writing Linux Kernel Keylogger)中的源码如何编译通过???
  • 菜鸟问题: redhat linux 编译一个最简单的c程序, 其中包含了<studio.h>头文件,但在gcc编译时,提示找不到studio.h文件,请问各位大大
  • 双系统,Linux总是得重启几次才能进去
  • red hat linux 启动后怎么密码输不进去
  • 急救!!——忘记了linux登陆密码,有办法进去吗?
  • 求助,linux装完后,虚拟机装的,进去后花屏,屏幕的字都看不清,有请输入..几个字
  • 手机上的linux 控制台怎么进去啊?
  • Linux RadHat 9.0 被攻击,把密码改了,请问如何进去?
  • 刚刚安装了RED HAT LINUX,请问怎么进去?
  • linux向压缩包中添加文件,怎么添加不进去?
  • 请问各位,我装了Mandrake Linux 10.1版,选的简体中文,可是进去后菜单的中文都是方格,怎么解决啊?
  • 不小心远程注销了linux,然后再进去时桌面不见?急!!在线等,高手帮忙啊!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • Linux查找包含指定文字的文件(linux查找指定文件)
  • Linux下通过rpm安装软件详细介绍以及如何将软件安装到指定目录
  • 求一SHELL(Linux下批量将指定目录文件传到指定远程服务器的指定目录)!
  • linux如何给指定用户赋予指定文件的权限
  • secureCRT下Linux终端汉字乱码解决方法 iis7站长之家
  • linux 指定用户只能读写指定的文件夹
  • linux 下面安装通过yum安装apache 指定目录
  • 安装红旗Linux桌面版的问题:指定镜像文件。应该是什么路径
  • 求linux下,指定速率发包的软件
  • 在linux下怎样 建立一个指定路径的文件夹!!!!
  • LINUX下C++编程如何控制光标的位置,以达到在指定位置输出字符
  • 在linux上怎么查看指定文件夹的权限?
  • 在Linux下怎样指定网卡的速度
  • 急! linux中,如何将mysql安装到指定位置?
  • linux如何限制指定进程的内存使用量?
  • linux下怎么实现在屏幕上指定地方输出字符?
  • linux下多网卡机器中,如何通过指定网卡来接受数据?
  • Linux提到指定区间的字符命令如何写(cpu MHz: 2262.000)
  • LINUX的临时目录等,能指定到别的卷吗?
  • linux 如何与指定进程通信?
  • 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