当前位置:   article > 正文

蓝易云:Ubuntu 22.04环境下clang++编译错误:/usr/bin/ld: 找不到 -lstdc++: 没有那个文件或目录的解决方案

蓝易云:Ubuntu 22.04环境下clang++编译错误:/usr/bin/ld: 找不到 -lstdc++: 没有那个文件或目录的解决方案

首先,先要掌握一件事。当你看到 "找不到 -lstdc++" 这样的错误,你应该知道,你正试图链接的程序可能需要某些库。"-lstdc++" 是gcc的标准C++库,clang++也需要它来完成一些基本的任务。不同的是,GCC会自动包含这个库,但是Clang++可能不会,这种情况下需要手动指定。

 

出现这个错误的原因可能是你的系统中缺少了相应的支持库,或者链接器没有找到这个库。那么,我们需要找到解决方案,确保你的系统中有这个库,并且链接器能够找到它。

第一步是终端输入如下命令,确定一个事实:你系统中是否已经有了这个库。

  1. sudo updatedb --prunepaths=/mnt
  2. locate libstdc++.so

如果这个库在其中某个路径出现,那么你的系统已经安装了它。但是链接器可能仍然找不到它,这就是问题所在。恭喜你,我们找到了问题的病灶!

那这个问题怎么解决呢?

联想一下我们日常生活中的场景,比如你要找电视遥控器,但是你忘了把遥控器放在了哪里。你会怎么做呢?一个有效的方法可能就是,找到遥控器之后,把它放在一个固定的地方,让你下次可以很快找到它。这里一样的道理,我们需要让链接器能在一个固定的地方找到这个库。

终端输入以下命令就可以告诉链接器在哪里可以找到这个库:

export LIBRARY_PATH=/path/to/your/library:$LIBRARY_PATH

请把 /path/to/your/library 替换为你刚才在首步找到的库的路径。

如果你的系统还没有这个库,那么我们就需要安装它。在Ubuntu系统中,你可以通过apt来安装它:

sudo apt install libstdc++6

一旦安装完成,链接器就该能找到这个库了。

以上就是解决 "找不到-lstdc++" 的两种可能方法。就像在乌鸦乌鸦的夜晚寻找那只独特的、拥有金色眼睛的乌鸦,其实它就在那里,而且总会被找到。祝你在代码的世界里,能找到你需要找到的一切。

云服务器推荐
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/581477
推荐阅读
相关标签
  

闽ICP备14008679号