首页 > 其他分享 >动态库加载失败:error while loading shared libraries: xxx.so: cannot open shared object file: No such file o

动态库加载失败:error while loading shared libraries: xxx.so: cannot open shared object file: No such file o

时间:2023-10-26 13:44:26浏览次数:38  
标签:LD lib LIBRARY PATH so file such shared 动态

ldd main | grep not

0.1 动态库的工作原理可知,只要把动态库libcalc.so的绝对路径添加到动态载入器ld-linux.so的搜索路径中,那么动态载入器就可以获取到动态库libcalc.so的绝对路径,接着就可以找到动态库文件libcalc.so,将动态库文件载入内存,然后就可以使用动态库里面的代码,最终可执行程序main就可以成功运行,不会报错。

还是由0.1 动态库的工作原理可知,动态载入器搜索动态库绝对路径的搜索顺序为:DT_RPATH段→环境变量LD_LIBRARY_PATH→/etc/ld.so.cache文件列表→/lib/或/usr/lib目录

因此,添加动态库绝对路径的方法也有很多种

接下来,我们就按照上述分析进行操作.

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/veroll/Linux/lesson1.6/library/lib

echo $LD_LIBRARY_PATH

#动态链接库:
1
#.bashrc +
#sudo vim /etc/profile
export LD_LIBRARY_PATH+="/usr/local/lib"
# 查看
echo $LD_LIBRARY_PATH

ldd main | grep not

2
#or将动态库绝对路径添加至/etc/ld.so.cache文件列表中:
vim /etc/ld.so.conf
+:
/usr/local/lib
sudo ldconfig

3
将动态库添加至/lib/或/usr/lib目录 or 软链接,注意检查名称,别已经有了 防止覆盖;

标签:LD,lib,LIBRARY,PATH,so,file,such,shared,动态
From: https://www.cnblogs.com/qiynet/p/17789220.html

相关文章

  • Filebeat占用CPU过高问题定位与分析
    一、Filebeat简介:Filebeat是一个开源的轻量级日志收集器,用于将日志数据发送到指定的中央服务系统。主要分为三个部分。Prospector负责检测指定日志目录或文件,并对检测到的每个日志文件,filebeat启动一个收割进程(harvester),Filebeat目前支持两种Prospector类型:log和stdin,每个Pros......
  • 捡起ctf学习 day2 Linux BUU LFI COURSE 1(Local File Include) burpsuite爆破
    1.LocalFileInclude打开网页 文件包含漏洞,参考知乎专栏https://zhuanlan.zhihu.com/p/540864302随着网站的业务的需求,程序开发人员一般希望代码更加灵活,所以将被包含的文件设置为变量,用来进行动态调用,但是正是这种灵活性通过动态变量的方式引入需要包含的文件时,用户对这个......
  • [ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/
     永久解决方法:在/etc/sysctl.conf中添加:net.bridge.bridge-nf-call-ip6tables=1net.bridge.bridge-nf-call-iptables=1执行sysctl-p时刷新sysctl-p如果出现缺少文件的现象sysctl:cannotstat/proc/sys/net/bridge/bridge-nf-call-iptables:没有那个文......
  • IoRegisterFileSystem NtosKrnl.lib
    NtosKrnl.lib IoRegisterFileSystem函式(ntifs.h)IoRegisterFileSystem函式(ntifs.h)ntddk.h头文件冲突..... 白话IoRegisterFsRegistrationChange-CSDN博客 转个文件过滤驱动的东东,总结的比较全面-调试易(debugease.com)......
  • Keil5编译器报错:ARMLMD_LICENSE_FILE unset~解决
    keilMDK版本更新到最新版本是V5.38。由于V5.38不支持编译器5,并且将默认编译器设置为编译器6,所以我安装了编译器5(Arm编译器版本5,V5.06更新7),带有独立补丁。然后将编译器5添加到keil,设置编译器5为默认编译器,但是keil无法构建项目,构建输出部分打印如下,:ARMLMD_LICENSE_FILE:unset......
  • 【踩坑】/usr/bin/ld: cannot find -lstdc++: No such file or directory
    环境:win10中的wsl2的Ubuntu1.报错/usr/bin/ld:cannotfind-lstdc++:Nosuchfileordirectory通过sudoapt-getinstalllibstdc++6解决。2.安装完之后依旧还是报一样的错参考资料通过gcc-lstdc++--verbose检查。输出了一大堆东西,但在末尾还是有/usr/b......
  • How to tell whether a file is a symbolic link in shell script All In One
    HowtotellwhetherafileisasoftsymboliclinkinshellscriptAllInOneshell脚本中如何判断一个文件是否是软链接/软符号链接error软链接自动指向原文件bug❌#软链接$test./test.sh-ef./test-soft-link.sh$echo$?0#硬链接❌$test./test.......
  • odoo fileupload via controller
      #-*-coding:utf-8-*-#PartofOdoo.SeeLICENSEfileforfullcopyrightandlicensingdetails.importbase64fromcollectionsimportOrderedDictfromdatetimeimportdatetimefromodooimporthttpfromodoo.exceptionsimportAccessError,Missin......
  • bilibili B站:从零开始学Makefile - 原作者笔记
    视频摘自B站:https://www.bilibili.com/video/BV1Bv4y1J7QT笔记摘自:https://gitee.com/yanmu_ym/cpp学习环境搭建Linux(以Ubuntu为例)sudoaptinstallgccg++makeWindows学习与演示过程以Windows为主,Windows上装MinGW环境,MinGW官网:https://www.mingw-w64.org/之前我们提过两个版......
  • Java拾贝第十一天——IO之File类
    Java拾贝不建议作为0基础学习,都是本人想到什么写什么Java中提供了IO以操控计算机中的文件File类在整个IO包中,与文件相关的类就是File类。使用它可以进行创建或删除文件因为File类是个普通类,初始化它需要调用其有参构造publicFile(Stringpathname){//传参为文件路径}使......