在redhat linux5.4里 替换动态库后,编译成功,但用ldd查看程序,显示此库找不到
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在redhat linux5.4里 替换动态库后,编译成功,但用ldd查看程序,显示此库找不到相关的知识,希望对你有一定的参考价值。
我在/usr/local/lib中,替换了一个新版本的动态库xx.so.1,并重新软连接xx.so, ldconfig后,再编译,但是程序运行说找不到此库。用ldd命令查看,发现一行 xx.so.0 => not found,我明明换了新版本,可是编译还是连接原来的旧版本xx.so.0,很急,哪位大侠帮我解决,必有加分,
呵呵,1.将该路径添加到/etc/ld.so.conf的最后一行
2.ldconfig -v
应该就可以了。追问
不行呀
追答编译能不能通过,
编译不通过,加-I 动态库路径 -l动态库名称
如果你简单的替换了库,相关的软连接,你都要按照原来的做好。
如果编译通过,软连接做好,执行的时候还是找不到动态库。
那就是替换,软连接做的有问题,可能遗漏了相关内容。
回答出来,肯定会追加的
追答请先加
参考技术B 后面应该加上-L库的名字编译,你是不是忘了。RedHat 7配置ISCSI服务
在rhel7中的众多变化之中,就有早先的ISCSI 目标程序tgtd 被抛弃,替换为的新的Linux-IO(lio),lio是一个是一个内核空间的iscsi target。(详见http://linux-iscsi.org/wiki/ISCSI)
安装iscsi target服务:yum -y install targetcli
启动服务:systemctl start target
设置服务开机自动启动:systemctl enable target
进入iscsi target配置命令行:targetcli
使用文件系统,创建名为disk01,大小1G的磁盘文件:
cd backstores/fileio
create disk01 /data/disk01.img 1G
或者使用块设备,示例如下:
/>
cd backstores/
/backstores> iblock/ create name=block_backend dev=/dev/sdb
Generating a wwn serial.
Created iblock storage object block_backend using /dev/sdb.
/backstores>
或者使用LVM逻辑卷,示例如下
/> /backstores> iblock/ create name=block_backend_lvm
dev=/dev/vg0/lv1
Generating a wwn serial.
Created iblock storage object block_backend_lvm using
/dev/vg0/lv1.
/backstores>
创建iqn,并在该iqn下创建门户IP
然后再该iqn下创建lun0,这样就跟上文创建的磁盘文件disk01.img关联起来
最后在该iqn下创建acls访问控制条目,允许客户端的iqn访问该磁盘文件
配置完毕,ls查看一下配置的树状结构,然后保存并退出
查看一下创建的disk01.img的大小,可以看到是动态精简磁盘,大小是0
windows客户端测试:
Linux客户端测试:
发现target:iscsiadm -m discovery -t sendtartgets -p 192.168.10.14
登录target:iscsiadm -m node -T iqn.2016-03.rh7.server:disk01 --login,但登录失败,因为acl中没有允许该Linux客户端的访问
查看该Linux客户端的iqn
在服务器端配置target,添加该Linux客户端的iqn到acls中以运行访问
登录target,成功登录
用fdisk -l查看该磁盘文件
退出该target
本文出自 “江健龙的技术博客” 博客,请务必保留此出处http://jiangjianlong.blog.51cto.com/3735273/1790989
以上是关于在redhat linux5.4里 替换动态库后,编译成功,但用ldd查看程序,显示此库找不到的主要内容,如果未能解决你的问题,请参考以下文章
VS2008里,创建一个win32 static libraryd静态库后,怎么添加一个 symbol “TETLIBRARY” 到编译开关?
如何动态替换apk中manifest文件里的android:schema?