报错:
Traceback (most recent call last): File "/home/carla/LWF/sapienipc-exp/warp_/warp/context.py", line 2494, in load_dll dll = ctypes.CDLL(dll_path, winmode=0) File "/home/carla/anaconda3/envs/mani_vitac/lib/python3.10/ctypes/__init__.py", line 374, in __init__ self._handle = _dlopen(self._name, mode) OSError: /home/carla/anaconda3/envs/mani_vitac/bin/../lib/libstdc++.so.6: version GLIBCXX_3.4.30' not found (required by /home/carla/LWF/sapienipc-exp/warp_/warp/bin/warp.so)
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/home/carla/LWF/sapienipc-exp/examples/example_peg.py", line 28, in <module> wp.init() File "/home/carla/LWF/sapienipc-exp/warp_/warp/context.py", line 4102, in init runtime = Runtime() File "/home/carla/LWF/sapienipc-exp/warp_/warp/context.py", line 1907, in __init__ self.core = self.load_dll(warp_lib) File "/home/carla/LWF/sapienipc-exp/warp_/warp/context.py", line 2498, in load_dll raise RuntimeError(f"Failed to load the shared library '{dll_path}'") RuntimeError: Failed to load the shared library '/home/carla/LWF/sapienipc-exp/warp_/warp/bin/warp.so'
遇到的问题是系统中没有加载正确的 libstdc++.so.6 版本,且无 GLIBCXX_3.4.30。问题与 Anaconda 环境中加载的动态库冲突 有关。
以下是进一步解决问题的步骤:
1. 添加新的 GCC 源
在 Ubuntu 中,默认软件源可能没有最新的 GCC。需要添加新的 PPA(Personal Package Archive)来获取更新版本的 GCC。
sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt update
2. 安装 GCC 11 或更高版本
通过以下命令安装 GCC 11:
sudo apt install gcc-11 g++-11
3. 切换默认的 GCC 版本
在系统中配置默认的 GCC 版本为新安装的版本(例如 GCC 11):
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 11
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 11
sudo update-alternatives --config gcc
sudo update-alternatives --config g++
按照提示选择 GCC 11 或更高版本为默认。
4. 验证安装
确保 GCC 已正确升级:
gcc --version
确认输出中显示的是 GCC 11 或更高版本。
4. 验证 Anaconda 环境的 libstdc++.so.6 版本
运行以下命令,检查 Anaconda 环境中的 libstdc++.so.6:
strings /home/carla/anaconda3/envs/mani_vitac/lib/libstdc++.so.6 | grep GLIBCXX
如果没有找到 GLIBCXX_3.4.30,说明需要更新 Anaconda 环境的 libstdc++.so.6。
5. 更新 Anaconda 环境的依赖
通过 conda-forge 安装正确的 libstdc++.so.6 版本:
conda install -c conda-forge libstdcxx-ng
这将确保您的环境中有最新的标准库。
6. 优先加载系统的 libstdc++.so.6
Anaconda 的动态库可能与系统库冲突。可以临时优先加载系统的库文件:
-
检查系统中是否存在正确版本的
libstdc++.so.6(例如在/usr/lib/x86_64-linux-gnu/路径下):strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX确保输出中有
GLIBCXX_3.4.30。 -
设置环境变量,确保系统库优先加载:
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH然后重新运行脚本
-
问题解决
1671

被折叠的 条评论
为什么被折叠?



