导入rclpy
时,缺少所需版本的libstdc++
库。通常情况下,这是由于系统上的libstdc++
版本与ROS所需的版本不匹配导致的。
-
从conda安装libstdc++:
libstdc++
库:conda install libstdcxx-ng
-
验证版本:
确认安装后的版本满足要求,运行以下命令检查版本:strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
应该能够看到
GLIBCXX_3.4.30
。 -
创建符号链接:
如果升级库没有解决问题,可以尝试创建符号链接以指向正确的库文件。例如:ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /home/hee/miniconda3/envs/py/lib/libstdc++.so.6
-
使用conda创建隔离环境:
确保ROS和其他包在隔离的conda环境中,避免库版本冲突:conda create -n ros_env python=3.10.3 conda activate ros_env conda install libstdcxx-ng pip install rclpy python3
在里面可以正常导入