Ubuntu20.04编译OLLVM踩坑

本文介绍了解决在Ubuntu20.04环境下使用CMake配置OLLVM项目时出现的错误。通过将config.guess文件中的DOS行结尾转换为Unix行结尾,成功解决了编译过程中的问题。

参考链接

总体安装步骤大同小异,详细步骤请参考下述链接:

cmake报错

obfuscator/cmake/config.guess: 71: Syntax error: word unexpected (expecting "in")
 CMake Error at cmake/modules/GetHostTriple.cmake:27 (message):
  Failed to execute /home/computador/gsrc/independent/llvm/cmake/config.guess 
 Call Stack (most recent call first): cmake/config-ix.cmake:380 (get_host_triple) CMakeLists.txt:611 (include)
-- Configuring incomplete, errors occurred! See also 
"/home/computador/gsrc/independent/llvm_build/build/CMakeFiles/CMakeOutput.log". See also 
"/home/computador/gsrc/independent/llvm_build/build/CMakeFiles/CMakeError.log".

经过查阅相关类似问题的解决方案,如cmake增加-DLLVM_INCLUDE_TESTS=OFF选项等,均不奏效。最终在StackOverFlow上面一位网友提供的解决方案成功的解决了此问题,主要的原因是在config.guess文件中存在一些DOS行结尾(DOS line endings),需要将其转换为Unix行结尾。

sudo apt-get install dos2unix
dos2unix path/to/config.guess

从头再来即可成功编译OLLVM

<think>我们正在处理用户的问题:“我想在Ubuntu 20.04编译通过ROS Navigation功能 请问Ubuntu 20.04 compile ROS Navigation success” 根据用户的问题,我们需要提供在Ubuntu 20.04上成功编译ROS Navigation功能的步骤。注意,ROS Navigation通常指的是ROS中的导航栈(navigation stack),它包含在ROS的导航包中。 首先,我们需要明确用户使用的ROS版本。Ubuntu 20.04对应的是ROS Noetic Ninjemys,这是ROS1的最后一个版本。因此,我们将基于ROS Noetic进行说明。 步骤大致如下: 1. 确保已经安装了ROS Noetic桌面完整版(推荐,因为包含了导航栈所需的许多依赖)。 2. 创建一个工作空间(如果已有可以跳过)。 3. 下载导航栈的源代码(或者通过apt安装二进制包,但用户要求编译,所以我们将从源代码编译)。 4. 解决依赖。 5. 编译。 注意:导航栈包含多个包,如amcl, move_base, map_server等。我们可以通过源代码编译整个导航栈。 然而,用户可能希望自己编译最新的版本(例如从GitHub上获取最新的代码),或者修改代码。因此,我们将介绍从源代码编译的方法。 但是,需要注意的是,ROS Noetic的导航包在官方源中已经提供了二进制包。如果用户不需要修改代码,直接安装二进制包是最简单的。不过,既然用户要求编译,我们将从源码编译。 具体步骤:</think>### 在 Ubuntu 20.04编译 ROS Navigation 功能指南 #### 前置条件 1. **已安装 ROS Noetic** Ubuntu 20.04 对应 ROS Noetic 版本,需先完成基础安装: ```bash sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu focal main" > /etc/apt/sources.list.d/ros-latest.list' sudo apt install curl curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - sudo apt update sudo apt install ros-noetic-desktop-full echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc ``` 2. **创建工作空间** ```bash mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc source ~/.bashrc ``` #### 编译 Navigation 功能包 1. **安装依赖** ```bash sudo apt install ros-noetic-navigation ros-noetic-move-base ros-noetic-amcl \ ros-noetic-map-server ros-noetic-dwa-local-planner ``` 2. **从源码编译(可选)** 若需最新版本或自定义修改: ```bash cd ~/catkin_ws/src git clone https://github.com/ros-planning/navigation.git -b noetic-devel cd .. rosdep install --from-paths src --ignore-src -r -y # 解决依赖 ``` 3. **编译与验证** ```bash catkin_make # 编译整个工作空间 # 验证安装 rospack find amcl # 应返回路径:~/catkin_ws/devel/share/amcl ``` #### 常见问题解决 - **依赖缺失错误**: 使用 `rosdep install --from-paths src --ignore-src -r -y` 自动安装缺失依赖。 - **CMake 错误**: 确保已安装构建工具: ```bash sudo apt install build-essential cmake ``` - **Python 3 兼容性**: Noetic 默认使用 Python 3,若遇语法错误需检查脚本的 Python 版本兼容性。 #### 验证导航功能 ```bash roslaunch turtlebot3_navigation turtlebot3_navigation.launch # 需先安装 TurtleBot3 模拟包 ``` 若成功启动 RViz 界面并显示地图/传感器数据,则导航功能编译成功[^1]。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值