报错:/usr/bin/ld: 找不到 -lclntsh: 没有那个文件或目录

这篇具有很好参考价值的文章主要介绍了报错:/usr/bin/ld: 找不到 -lclntsh: 没有那个文件或目录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

环境:ubuntu 22.04   使用docker安装的oracle

操作:在使用gcc编译器时,链接动态库 -locci -lclntsh,设置环境变量不行之后,又加了(-L库文件路径),变成-locci可以,但是-lclntsh不行,报错如标题所示

(备注:如果你是两个文件都找不到的话,看看是不是root权限问题,因为docker的路径是默认root的;再或者你的   -L库文件路径     不正确)

解决问题:

1、查看文件详细信息

locate libclntsh.so

        输出情况:

root@mrluo-virtual-machine:/home/mrluo# locate libclntsh.so
/var/lib/docker/overlay2/7d5a179cbd6d8abc77bc0d51040714ed6045d33851698f9c7c5779b46c93b478/merged/home/oracle/app/oracle/product/11.2.0/dbhome_2/inventory/Scripts/ext/lib/libclntsh.so.11.1
/var/lib/docker/overlay2/7d5a179cbd6d8abc77bc0d51040714ed6045d33851698f9c7c5779b46c93b478/merged/home/oracle/app/oracle/product/11.2.0/dbhome_2/inventory/backup/2014-08-23_05-45-12AM/Scripts/ext/lib/libclntsh.so.11.1
/var/lib/docker/overlay2/7d5a179cbd6d8abc77bc0d51040714ed6045d33851698f9c7c5779b46c93b478/merged/home/oracle/app/oracle/product/11.2.0/dbhome_2/lib/libclntsh.so
/var/lib/docker/overlay2/7d5a179cbd6d8abc77bc0d51040714ed6045d33851698f9c7c5779b46c93b478/merged/home/oracle/app/oracle/product/11.2.0/dbhome_2/lib/libclntsh.so.10.1
/var/lib/docker/overlay2/7d5a179cbd6d8abc77bc0d51040714ed6045d33851698f9c7c5779b46c93b478/merged/home/oracle/app/oracle/product/11.2.0/dbhome_2/lib/libclntsh.so.11.1
/var/lib/docker/overlay2/b105bb6cc6d953181ba0381d099635f99ec9dbe76c70637f10f350256ed0a599/diff/home/oracle/app/oracle/product/11.2.0/dbhome_2/inventory/Scripts/ext/lib/libclntsh.so.11.1
/var/lib/docker/overlay2/b105bb6cc6d953181ba0381d099635f99ec9dbe76c70637f10f350256ed0a599/diff/home/oracle/app/oracle/product/11.2.0/dbhome_2/inventory/backup/2014-08-23_05-45-12AM/Scripts/ext/lib/libclntsh.so.11.1
/var/lib/docker/overlay2/b105bb6cc6d953181ba0381d099635f99ec9dbe76c70637f10f350256ed0a599/diff/home/oracle/app/oracle/product/11.2.0/dbhome_2/lib/libclntsh.so
/var/lib/docker/overlay2/b105bb6cc6d953181ba0381d099635f99ec9dbe76c70637f10f350256ed0a599/diff/home/oracle/app/oracle/product/11.2.0/dbhome_2/lib/libclntsh.so.10.1
/var/lib/docker/overlay2/b105bb6cc6d953181ba0381d099635f99ec9dbe76c70637f10f350256ed0a599/diff/home/oracle/app/oracle/product/11.2.0/dbhome_2/lib/libclntsh.so.11.1

2、进入到相应文件里面

cd /var/lib/docker/overlay2/b105bb6cc6d953181ba0381d099635f99ec9dbe76c70637f10f350256ed0a599/diff/home/oracle/app/oracle/product/11.2.0/dbhome_2/lib

3、查看libclntsh的详细信息

root@mrluo-virtual-machine:/var/lib/docker/overlay2/b105bb6cc6d953181ba0381d099635f99ec9dbe76c70637f10f350256ed0a599/diff/home/oracle/app/oracle/product/11.2.0/dbhome_2/lib# ll | grep libclntsh
lrwxrwxrwx  1 500 500        69  8月 23  2014 libclntsh.so -> /home/oracle/app/oracle/product/11.2.0/dbhome_2/lib/libclntsh.so.11.1
lrwxrwxrwx  1 500 500        64  8月 23  2014 libclntsh.so.10.1 -> /home/oracle/app/oracle/product/11.2.0/dbhome_2/lib/libclntsh.so
-rwxr-xr-x  1 500 500  48725713  8月 23  2014 libclntsh.so.11.1*

这个时候发现问题就在这里,大家可以尝试用1、2、3的步骤看看能通过的-locci就会发现这里的两个软链接都是指向错误的,因为我们用了docker容器安装的oracle,所以路径就在docker里面,而不在默认路径下了

4、更改这里的两个软链接

        先删除rm,后链接ln

rm libclntsh.so
rm libclntsh.so.10.1
ln -s ./libclntsh.so.11.1 ./libclntsh.so
ln -s ./libclntsh.so.11.1 ./libclntsh.so.10.1

大功告成!文章来源地址https://www.toymoban.com/news/detail-621088.html

到了这里,关于报错:/usr/bin/ld: 找不到 -lclntsh: 没有那个文件或目录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 记录linux运行服务提示报错/bin/java: 没有那个文件或目录

    描述:在执行jar启动命令时候提示 没有/bin/java 这个文件或者目录;然后我vi /usr/bin/java,是存在该文件的;那到底是什么问题呢,该不是没有创建软连接吧? 1、执行下述命令先测试下软链接是否有创建 创建说明已存在,说明是软连接失效了; 2.先删除软连接 3、再次执行上

    2024年02月07日
    浏览(49)
  • linux报错 /bin/bash^M:解释器错误:没有那个文件或目录

      在Linux中运行脚本时,会出现linux报错 /bin/bash^M:解释器错误:没有那个文件或目录。这是因为我们将在Windows下编写的脚本拷贝到Linux环境中运行时会出现运行不了的情况。主要还是Windows的换行符为rn,而Linux环境中的换行符号为n。   解决方法有:   方法一:   方法

    2024年02月13日
    浏览(61)
  • 【Linux】 /bin/bash^M: 坏的解释器: 没有那个文件或目录[已解决]

    Windows 10 系统下编辑了一个shell脚本文件,然后copy到了远程的Linux服务器。 运行 xxx.sh 文件时报错 这个文件在Windows下编辑过,在Windows下每一行结尾是nr,而Linux下则是n,所以才会有多出来的r。 使用指令 会把 xxx.sh 中的r 替换成空白。

    2024年02月12日
    浏览(74)
  • 解决Linux系统下,“/usr/bin/ld: 找不到 -lXXX”问题

    参考链接:(5条消息) 解决Make时,“/usr/bin/ld: 找不到 -lXXX”问题的四种方法_回音谷的博客-CSDN博客 本文以Xxf86vm库作为例子,遇到不同的库直接替换这个库的名字就行。 报错: 意思是找不到名为Xxf86vm的库,库的名字应该是Xxf86vm.so,命名规则是libXxf86vm.so 1、首先先找电脑上是

    2024年02月11日
    浏览(49)
  • hadoop报错:没有那个文件或目录

    删掉haoop安装目录下 /opt/module/hadoop-3.3.0/etc/hadoop/workers 文件里面的localhost 保存后可成功运行脚本 附上:myhadoop.sh(实现hadoop集群快速启停)

    2024年02月11日
    浏览(64)
  • 启动hbase(报错:没有那个文件或目录)

    完成hbase伪分布配置后,启动hbase 然后报错 发现都是Java没有文件或目录,判断是jdk的路径错误 然后修改配置文件:hbase-env.sh(文件在hbase-conf目录) 将本机的jdk路径写正确  更改完成后再次启动hbase即可  

    2024年02月11日
    浏览(45)
  • Ros终端出现找不到bash: /home/***/devel/setup.bash: 没有那个文件或目录

    现象: Ros终端出现找不到bash: /home/***/devel/setup.bash: 没有那个文件或目录 问题: 配置时路径写错 A 解决方法:改正路径 1.打开文件  2.修改正确路径 B 粗暴解决:把上次写错的配置直接删除 1.显示隐藏文件 2.在主目录下打开 .bashrc 文件,把上次写入的配置直接删除,然后保存

    2024年02月15日
    浏览(44)
  • Pyhotn: Mac安装selenium没有chromedriver-114以上及chromedriver无法挪到/usr/bin目录下的问题

    终端输入: 查看版本: 查看chrome版本 网上大多数是,基本到114就停了。 https://registry.npmmirror.com/binary.html?path=chromedriver/  各种搜索,https://googlechromelabs.github.io/chrome-for-testing/#stable   https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/119.0.6045.105/mac-arm64/chromedriver-mac-arm64.zip 接下来

    2024年02月05日
    浏览(56)
  • -bash:./app:没有那个文件或目录(已解决)

    目录下有文件,并且权限也是够的,都是就是是没有。 解决方法: 进入/bin,执行命令 如上图,可以发现,bash是32-bit, 进入app所在目录,执行 如上图,可以发现,app是64-bit, 这就是问题所在!!! 这说明我们使用的编译工具需要更换,我编译app使用的是64位的交叉编译器

    2024年04月15日
    浏览(37)
  • /usr/bin/ld: cannot find -lc错误原因及解决方法

    在运行 asapp书中第7章 链接例子时,在使用 gcc -static -o prog main.o ./libvector.a ** 命令或是 gcc xxx -o xxx -static 静态导入库,进行 链接** 时出现以下错误: /usr/bin/ld: 找不到 -lc collect2: 错误:ld 返回 1 在新版本的 linux 系统 下安装 glibc-devel、glibc和gcc-c++ 时,都不会安装 libc.a. ** 只安

    2024年02月05日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包