OpenCv:ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22' not found问题解决

ubuntu下使用opencv处理图像时遇到的问题


问题描述:

在跑CornerNet Anchor-free代码时,遇到了如下问题:

import cv2
ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22’ not found (required by /home/xxx/.conda/CornerNet/lib/python3.6/site-packages/…/…libopencv_objdetect.so.3.3)
在这里插入图片描述
参考了一些网上的建议:
说是没有安装python-dev,libevent-dev。
我尝试:

sudo apt-get install python3-dev
sudo apt-get install libevent-dev

失败

我又采取了其他方式,最终解决。


解决方案:

问题描述里,明显表明是libstdc++.so.6中没有 GLIBCXX_3.4.22这玩意,虽然我不

<think>首先,用户的问题是中文的,我需要用中文回答。问题描述了一个错误情况:在执行 `sudo ldconfig -v` 时,出现了多个错误和警告,包括无法访问某些目录、多次给出路径等。 用户的信息是: ``` lixing@lixing:~/opencv$ sudo ldconfig -v /sbin/ldconfig.real: 无法对 // opencvlib目录 进行 stat 操作: 没有那个文件或目录 /sbin/ldconfig.real: 无法对 /usr/local/lib/x86_64-linux-gnu 进行 stat 操作: 没有那个文件或目录 /sbin/ldconfig.real: 多次给出路径“/usr/lib/x86_64-linux-gnu” /sbin/ldconfig.real: 多次给出路径“/lib/x86_64-linux-gnu” /sbin/ldconfig.real: 多次给出路径“/usr/lib/x86_64-linux-gnu” /sbin/ldconfig.real: 多次给出路径“/usr/lib” /usr/lib/x86_64-linux-gnu/libfakeroot: libfakeroot-0.so -> libfakeroot-tcp.so /usr/local/lib: liblivox_lidar_sdk_shared.so -> liblivox_lidar_sdk_shared.so ``` 我需要解释这个错误并提供解决方案。 关键点: 1. `无法对 // opencvlib目录 进行 stat 操作`: 这似乎是路径错误。可能应该是 `/opencv/lib` 或类似路径,但写成了 `// opencvlib目录`,这看起来像是一个无效的路径。用户可能是指 `/home/lixing/opencv/lib` 或类似的,但命令中显示的是 `~/opencv`,所以可能用户在当前目录下运行命令,但路径被错误指定。 在输出中,是 `// opencvlib目录`,这很可能是打字错误或配置错误。可能用户在某个配置文件中错误地设置了路径。 2. `无法对 /usr/local/lib/x86_64-linux-gnu 进行 stat 操作`: 这个目录不存在,所以 ldconfig 无法访问。 3. `多次给出路径“/usr/lib/x86_64-linux-gnu”` 和类似:这表示在配置文件中,某些路径被多次指定,导致 ldconfig 警告。 4. 最后,它显示了两个库的链接:`libfakeroot-0.so -> libfakeroot-tcp.so` 和 `liblivox_lidar_sdk_shared.so -> liblivox_lidar_sdk_shared.so`。后者看起来奇怪,因为它链接到自己,这可能是一个错误。 ldconfig 是用于配置动态链接器运行时绑定的工具。它读取 /etc/ld.so.conf 和 /etc/ld.so.conf.d/ 中的配置文件,并更新缓存。 常见原因: - 无效路径:配置文件中包含不存在的目录。 - 重复路径:路径在配置文件中被多次列出。 - 符号链接问题:库文件可能有问题解决方案: 1. 检查配置文件:查看 /etc/ld.so.conf 和 /etc/ld.so.conf.d/ 中的文件,确保所有路径都是有效的,并且没有重复。 2. 移除无效路径:删除或修正那些不存在的路径。 3. 处理重复路径:合并重复的条目。 4. 运行 ldconfig 后,确保缓存更新。 对于用户的具体情况: - 第一个错误:`// opencvlib目录` – 这应该是用户自定义的路径。可能用户在安装 OpenCV 时添加了一个路径,但写错了。用户当前在 `~/opencv` 目录下,但路径是 `// opencvlib目录`,这无效。建议用户检查配置文件,修正路径为正确的 OpenCV 库目录,比如 `/home/lixing/opencv/lib`。 - 第二个错误:`/usr/local/lib/x86_64-linux-gnu` 不存在。可能用户创建了错误的目录结构,或者应该使用 `/usr/local/lib`。 - 警告多次给出路径:检查配置文件,移除重复条目。 - 最后,`liblivox_lidar_sdk_shared.so -> liblivox_lidar_sdk_shared.so` – 这看起来像是一个自引用符号链接,可能无效。用户应该检查这个库文件是否正常。 回答结构: - 先解释错误原因。 - 提供解决步骤。 - 最后,提出3-5个相关问题。 回答后,必须提出3-5个相关问题,以 "§§相关问题§§" 开头,然后列出问题。 相关问题应该基于用户的问题和我的回答。可能的主题: 1. 如何检查和编辑 ldconfig 配置文件。 2. 如何正确安装 OpenCV 以避免此类问题3. 处理符号链接问题4. 其他常见 ldconfig 错误。 5. 如何验证库路径。 确保所有内容用中文。 最终回答格式: - 回答部分。 - 然后 "§§相关问题§§" 在一行。 - 接着1. 2. 3. 列出问题。 现在,起草回答。</think>### 回答 您在执行 `sudo ldconfig -v` 时遇到的错误是由于系统动态链接器配置问题引起的。主要问题包括: 1. **无效路径**:`// opencvlib目录` 和 `/usr/local/lib/x86_64-linux-gnu` 目录不存在,导致 `ldconfig` 无法访问。 2. **路径重复**:`/usr/lib/x86_64-linux-gnu` 和 `/usr/lib` 等路径在配置文件中被多次指定,引发警告。 3. **符号链接问题**:`liblivox_lidar_sdk_shared.so` 的符号链接指向自身(`-> liblivox_lidar_sdk_shared.so`),这可能无效或错误。 **解决方案步骤**: 1. **检查并修正配置文件**: - 使用文本编辑器(如 `nano`)查看 `/etc/ld.so.conf` 和 `/etc/ld.so.conf.d/` 目录下的文件(例如 `opencv.conf` 或其他自定义文件)。 - 移除或修正无效路径(如 `// opencvlib目录`),确保路径正确(例如 OpenCV 库路径应为 `/home/lixing/opencv/lib`)。 - 删除重复路径(如多次出现的 `/usr/lib/x86_64-linux-gnu`),只保留一次。 2. **创建缺失目录或修正符号链接**: - 如果 `/usr/local/lib/x86_64-linux-gnu` 是必须的,请手动创建:`sudo mkdir -p /usr/local/lib/x86_64-linux-gnu`。 - 检查 `/usr/local/lib/liblivox_lidar_sdk_shared.so` 的符号链接:使用 `ls -l /usr/local/lib/liblivox_lidar_sdk_shared.so` 确认其指向正确库文件(如 `liblivox_lidar_sdk_shared.so.1`),如有问题,重新创建:`sudo ln -sf 正确库文件名 liblivox_lidar_sdk_shared.so`。 3. **更新缓存**: - 修正后运行 `sudo ldconfig` 重新生成缓存。 - 验证:执行 `ldconfig -p | grep opencv` 或 `ldconfig -p | grep livox` 检查库是否正常列出。 如果问题持续,请检查 OpenCV 安装过程是否正确(例如使用 `make install` 后是否自动添加了有效路径)。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值