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

设置了/etc/ld.so.conf,运行了ldconfig,编译仍找不到动态库

    来源: 互联网  发布时间:2017-02-21

    本文导语:  我的makefile文件如下: test:test.o gcc test.o  -ldl -lsmbios -o test    test.o:test.c gcc -c test.c -o test.o 动态库在/home/lib-jar/test中,我配置了/etc/ld.so.conf /etc/ld.so.conf内容如下: include ld.so.conf.d/*.conf /home/lib-jar/test 然后...

我的makefile文件如下:
test:test.o
gcc test.o  -ldl -lsmbios -o test   
test.o:test.c
gcc -c test.c -o test.o

动态库在/home/lib-jar/test中,我配置了/etc/ld.so.conf
/etc/ld.so.conf内容如下:
include ld.so.conf.d/*.conf
/home/lib-jar/test

然后执行了ldconfig命令,

执行ldconfig -p也能找到动态库
[root@zhaozhanzhong test]# ldconfig -p | grep smbios
libsmbios.so (libc6,x86-64) => /home/lib-jar/test/libsmbios.so

可执行make,却出错,结果如下

[root@zhaozhanzhong test]# make
gcc -c test.c -o test.o
gcc test.o  -ldl -lsmbios -o test   
/usr/bin/ld: cannot find -lsmbios
collect2: ld returned 1 exit status
make: *** [test] Error 1


但是当我把libsmbios.so拷贝到/usr/lib目录下时就没问题

请问这是怎么回事

|
你理解错了,ld.so是动态库载入器而不是连接器,某些翻译“动态连接器”有问题的,或者说英文原文就有问题

换句话说,配置ld.so.conf的作用就是如果so在非标准路径,可执行文件能够找到,这是运行期做的事情

你现在是编译,ld.so根本不起作用,所有用非标准路径的话必需手动指定库目录

    
 
 

您可能感兴趣的文章:

  • PROC开发时 //注释编译不通过 如何设置使用cpp编译。
  • 请问在linux下编译程序怎么设置编译器字节对齐?
  • 有谁知道怎样设置tomcat4.03 当重新编译servlet后不用重起便能调用最新编译的servlet.
  • kdevelop4中怎么设置才能编译时连接pthread库
  • codeblocksd编译器参数设置
  • Solaris系统下,使用gcc编译程序,请问采用1字节对齐应该怎样设置
  • 交叉编译时,ld ,搜索路径的设置
  • 在 JBuilder 6 中,如何修改设置使得编译时支持 -deprecation 选项?
  • gcc 编译器的安装问题----设置环境变量??? 着急!!
  • 如何设置classpath来编译servlet?
  • oracle iis7站长之家
  • 请问哪本书较全面的讲如何设置用JDK编译执行JAVA程序的环境?
  • 请问如何将kdevelop设置成arm-linux编译器?
  • 64位linux编译32位应用程序,怎样设置???
  • GCC编译程序时,有自定义头文件,提示找不到该头文件,但他就在这个目录中,如何设置GCC参数?
  • 下载了个pppd-2.2.4,编译成功后,如何设置拨号.
  • 我用单机编译socket和ServerSocket程序,我应该怎样对自己的机器进行设置?
  • 编程新手问题:编译时找不到gnome.h文件,但系统肯定安装了gnome开发包,是不是哪里的环境变量设置不对啊?
  • 请问 pathclass设置正确 语法正确 编译通过 但在执行时 显示"Exception in thread "main" java.lang.NoClassDefFoundError"…………不解
  • SublimeText编译C开发环境设置
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 我在xp下用VM安装fedora 5,但为什么找不到设置好的scsi硬盘!?
  • linux怎么改显示刷新度(闪的厉害)?我是RH8.0,在“系统设置”---“显示”中找不到啊
  • 驱动程序找不到Class.forName("oracle.jdbc.driver.OracleDriver");,在程序中还要设置什么?
  • samba服务器在主菜单的服务器设置处找不到
  • 我的jbuilder7在设置server的时候,我找不到OK按钮,只有一个set default按钮
  • Linix下的Tomcat,为什么我的Applet找不到?在Windows环境下运行正常的,是我的路径问题,还是Tomcat 的设置问题?
  • samba设置后,在winxp中可以看到samba的工作组,可是看不到samba机器!
  • 请问:我在redhat下装了bochs-2.2.1-1.rpm,.装了后,想设置一下,但找不到bochsrc.fda.bxrc,请问这个文件在哪个曰录下啊。
  • 现在使用的Solaris 10 版本,做DNS client设置时,找不到resolv.conf 文件? 是UNIX版本问题,还是本来就需要自己新建?
  • linux下的网关和DNS应该怎么设置?我设成跟win2000下一样,结果就无法用netscape就找不到网站。
  • hadoop的安装部署设置java环境变量后,ssh localhost时提示找不到文件路径
  • GOOGLE了好几遍就是找不到SHELL设置终端打印机字体的说明!各路英雄给支个招!什么方案都行!C的SHELL的!
  • 在jbuilder里开发的东西,移到tomcat下配置,怎么设置呢?每次都找不到bean!!
  • 安装cairo时候./configure成功,make失败:找不到pixman.h。但是我已经安装了pixman了,而且也设置了cairo的环境变量
  • C++ Bitsets 成员 count():返回被设置的位的个数
  • 在使用gcc之前,需要先设置环境吗?如何设置?在线等!!!
  • C++ I/O 成员 precision():设置精度
  • 用grub能否设置启动密码?如何设置?
  • C++ Bitsets 成员 any():如果有任何一个位被设置就返回true
  • 在linux服务器上面设置squid后怎么设置可以使客户端能使用QQ?
  • C++ Double Ended Queues(双向队列) 成员 assign():设置双向队列的值
  • 请问设置一个和root权限差不多的用户怎么设置?
  • C++ Vectors 成员 reserve():设置Vector最小的元素容纳数量
  • 用JSP。XML开发网站。请问那种环境设置最好。该如何设置环境
  • C++ Bitsets 成员 set():设置位
  • 环境变量设置设置与显示不一致
  • C++ Bitsets 成员 none():如果没有位被设置则返回true
  • linux下到底如何设置环境变量?在哪设置?详细具体点
  • C++ Strings(字符串) 成员 resize():重新设置字符串的大小
  • 紧急求救各位了:linux下有没有有设置报文最小长度的命令(好像只有设置报文最大长度MTU,通过ifconfig)?
  • Windows7自带防火墙设置:启动,关闭及高级设置


  • 站内导航:


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

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

    浙ICP备11055608号-3