解决 ubuntu 下编译文件的时候与 YAML 相关的的报错

输入:

复制代码
catkin build -DCMAKE_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g++-8

或

复制代码
catkin build airsim_tutorial_pkgs -DCMAKE_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g++-8

报错如下:

可能是缺少 yaml-cpp 文件,然后操作:

复制代码
sudo apt-get install yaml-cpp
sudo apt-get install ros-noetic-yaml

报错

编译:

复制代码
catkin build airsim_tutorial_pkgs -DCMAKE_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g++-8

报错

根据下面的错误,用 VScode 打开报错的文件

打开文件命令:

复制代码
cd /home/leaf/AirSim/ros/src/airsim_ros_pkgs
code .

yaml-cpp 没有链接到 airsim_ros

文件前面 fine_package 没有 find yaml-cpp,加上

这里不能在 find_package(catkin REQUIRED COMPONENTS 里面加入 yaml-cpp,因为这个里面是 find ros 包的,而 yaml-cpp 不是一个 ros 包,是系统的,只能单独写一个 find_packages,加入 yaml-cpp

再编译依旧报错

然后去网上下载 yaml-cpp

git clone 下来后直接安装到系统里

参考链接:

yaml-cpp的安装及使用_yaml cpp安装-CSDN博客

复制代码
 git clone https://github.com/jbeder/yaml-cpp.git
                cd yaml-cpp
                mkdir build && cd build
                cmake ..
                make -j16
                sudo make install

再编译就成功了

复制代码
catkin build airsim_tutorial_pkgs -DCMAKE_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g++-8
相关推荐
缘友一世4 小时前
GLM5.3 CyberSec w4A16本地部署[6]:加载链路与磁盘规划
ubuntu·vllm·glm5.3 cybersec
张张123y7 小时前
2026 Agent 框架怎么选?拆 3 层底层逻辑(运行循环 / 记忆 / 工具协议)+ 一张决策表
linux·ubuntu·microsoft·langgraph·mcp·crewai·agent 框架
longerxin20209 小时前
Ubuntu 22.04 ARM64 云镜像开启 root 密钥登录(保留 ubuntu 密钥登录,禁止密码登录)
数据库·ubuntu·postgresql
skywalk816310 小时前
FreeBSD仿真环境里的Ubuntu linux系统,安装软件的时候不支持snap怎么办?
linux·运维·ubuntu·系统·freebsd
Cry丶19 小时前
ubuntu安装vsftpd
服务器·网络·ubuntu
程序员-King.1 天前
【ROS1】Noetic 开发工作流程与常用命令
c++·ubuntu·ros
承渊政道1 天前
Linux网络学习【传输层协议UDP】
linux·网络·网络协议·学习·ubuntu·udp
pirateeee1 天前
在ubuntu中通过 docker 搭建 yocto 开发环境
ubuntu·docker·eureka
缘友一世1 天前
GLM5.3 CyberSec w4A16本地部署[5]:卸载换显存的边界
ubuntu·vllm·glm5.3 cybersec
fengkai45452 天前
3、Kubernetes的Namespace&Contexts&Pod&YAML格式
运维·容器·kubernetes·k8s·namespace·yaml·pod