解决Anaconda覆盖系统库导致的ROS编译错误
"该问题源于在Linux环境下,用户在编译ROS(机器人操作系统)工程时遇到了一个关于动态链接库的问题。错误提示表明运行时库文件libssl.so.1.1在/usr/lib/x86_64-linux-gnu目录下可能被/home目录下的anaconda3库中的文件遮蔽了。这通常是因为安装Anaconda后,其路径被添加到了环境变量PATH的前面,导致系统在寻找库文件时优先考虑Anaconda的路径,而非系统的标准库路径。" 在深入讨论这个问题之前,我们需要了解几个关键概念: 1. **动态链接库 (.so 文件)**:在Linux系统中,动态链接库是一种共享的代码存储库,程序在运行时可以动态地加载和使用这些库。例如,libssl.so.1.1是OpenSSL库的一个版本,用于提供加密和安全套接层(SSL/TLS)协议的支持。 2. **环境变量 PATH**:PATH变量包含了系统在执行命令时查找可执行文件的目录列表。当系统尝试执行一个命令时,它会按照PATH中列出的顺序搜索这些目录。 3. **Anaconda**:Anaconda是一个开源的Python和R分发版,包含了众多科学计算库,并且提供了一个便捷的环境管理工具。它有自己的库路径,可能会与系统默认的库路径冲突。 问题在于,当安装了Anaconda后,其路径被设置到了PATH环境变量的最前面,使得系统在查找libssl.so.1.1时首选了Anaconda的版本,而不是系统默认的。这可能导致不兼容或缺失依赖的问题,尤其是在编译ROS这样的复杂工程时。 解决这个问题有以下几种方法: 1. **临时修复**:通过修改当前终端的PATH环境变量,将系统路径提前。例如,输入: ``` export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/rw/anaconda3/bin:/home/rw/anaconda3/condabin" ``` 这样,系统路径会先于Anaconda路径被检查,但仅对当前终端有效。 2. **永久修复**:编辑用户的bash配置文件`.bashrc`。打开编辑器(这里使用gedit): ``` sudo gedit ~/.bashrc ``` 在文件末尾添加上述的PATH设置,然后保存并关闭文件。更新环境变量设置: ``` source ~/.bashrc ``` 这样,每次启动新的终端时,都会使用修正后的PATH。 3. **在编译前临时退出Anaconda环境**:如果正在使用Anaconda的特定环境,可以通过`conda deactivate`命令退出当前环境,然后再进行ROS的编译。 4. **调整Anaconda环境的配置**:也可以选择在Anaconda环境中配置单独的ROS开发环境,避免与系统库冲突。 在编译ROS时遇到的CMake警告可能是由于这个库路径问题导致的。CMake是用于构建、管理和部署软件的跨平台自动化构建系统,它在构建过程中会检测依赖项和库。因此,修复上述路径问题通常能消除这类警告。如果警告依然存在,可能需要检查CMakeLists.txt文件,确保正确指定了库的搜索路径。
![](https://csdnimg.cn/release/download_crawler_static/14052293/bg1.jpg)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 5
- 资源: 975
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 计算机系统基石:深度解析与优化秘籍
- 《ThinkingInJava》中文版:经典Java学习宝典
- 《世界是平的》新版:全球化进程加速与教育挑战
- 编程珠玑:程序员的基础与深度探索
- C# 语言规范4.0详解
- Java编程:兔子繁殖与素数、水仙花数问题探索
- Oracle内存结构详解:SGA与PGA
- Java编程中的经典算法解析
- Logback日志管理系统:从入门到精通
- Maven一站式构建与配置教程:从入门到私服搭建
- Linux TCP/IP网络编程基础与实践
- 《CLR via C# 第3版》- 中文译稿,深度探索.NET框架
- Oracle10gR2 RAC在RedHat上的安装指南
- 微信技术总监解密:从架构设计到敏捷开发
- 民用航空专业英汉对照词典:全面指导航空教学与工作
- Rexroth HVE & HVR 2nd Gen. Power Supply Units应用手册:DIAX04选择与安装指南
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)