当前位置: 首页 > article >正文

编译工具与文件学习(一)-YAML、repos、vcstoolcolcon

YAML

YAML(YAML Ain’t Markup Language)是一种人类可读的数据序列化格式,常用于配置文件、数据交换和存储结构化数据。YAML 的设计目标是简洁、易读,并且能够表示复杂的数据结构。

YAML 文件的基本语法

  1. 基本结构

    • YAML 使用缩进来表示层级关系,通常使用空格(而不是制表符)进行缩进。
    • 每个层级的缩进通常为两个空格。
  2. 键值对

    • 使用冒号(:)分隔键和值。
    name: John Doe
    age: 30
    
  3. 列表

    • 使用短横线(-)表示列表项。
    fruits:
      - apple
      - banana
      - orange
    
  4. 字典

    • 字典可以嵌套,表示复杂的数据结构。
    person:
      name: John Doe
      age: 30
      address:
        street: 123 Main St
        city: Anytown
    
  5. 注释

    • 使用井号(#)表示注释,注释内容会被忽略。
    # 这是一个注释
    name: John Doe  # 这是另一个注释
    
  6. 多行字符串

    • 使用 | 表示保留换行的多行字符串。
    description: |
      This is a multi-line string.
      It preserves line breaks.
    
    • 使用 > 表示折叠的多行字符串,换行会被转换为空格。
    description: >
      This is a folded multi-line string.
      It will be a single line.
    
  7. 布尔值和空值

    • 布尔值可以用 truefalse 表示。
    • 空值可以用 null~ 表示。
    is_active: true
    middle_name: null
    last_name: ~
    

示例 YAML 文件

以下是一个包含多种数据结构的示例 YAML 文件:

version: 1.0
services:
  web:
    image: nginx
    ports:
      - "80:80"
  database:
    image: postgres
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password

YAML 文件因其简洁和可读性,广泛应用于配置文件(如 Docker Compose、Kubernetes 配置等)和数据交换场景。\

repos语法

  • repositories:为所有repos文件默认的开头
  • 每个需要下载的仓库的描述:
    target path for local save;
    type:git/Subversion/…
    url:storage pull website
    version:branch/tag/commit id

use vcs to simplify project management pipeline

vcs=封装过的git,简化了拉取和导出的流程

wget https://raw.githubusercontent.com/ros2/ros2/rolling/ros2.repos
mkdir src
vcs import src < ros2.repos
vcs validate --input ros2.repos

Results:

...
Found git repository 'https://github.com/ros2/tinyxml2_vendor.git' with branch 'rolling'
=== ros2/tlsf (git) ===
Found git repository 'https://github.com/ros2/tlsf.git' with branch 'rolling'
=== ros2/unique_identifier_msgs (git) ===
Found git repository 'https://github.com/ros2/unique_identifier_msgs.git' with branch 'rolling'
=== ros2/urdf (git) ===
Found git repository 'https://github.com/ros2/urdf.git' with branch 'rolling'
=== ros2/yaml_cpp_vendor (git) ===
Found git repository 'https://github.com/ros2/yaml_cpp_vendor.git' with branch 'rolling'

查看状态vcs status

.........................................................................................................
=== src/ament/ament_cmake (git) ===
位于分支 rolling
您的分支与上游分支 'origin/rolling' 一致。

无文件要提交,干净的工作区
=== src/ament/ament_index (git) ===
位于分支 rolling
您的分支与上游分支 'origin/rolling' 一致。

colcon

查阅

  • 查看软件包的信息
colcon info --base-paths src/ros2/rcl/rcl_lifecycle

在这里插入图片描述

  • 只列举包名
 colcon list -n --base-paths src/ros2/rcl

在这里插入图片描述

colcon list -t --base-paths src/ros2/rcl

在这里插入图片描述

构建


http://www.kler.cn/a/381114.html

相关文章:

  • Python练习7
  • 微信小程序-事件总线
  • JMeter与大模型融合应用之jmeter.properties配置文件新增配置
  • java.io.FileNotFoundException: Could not locate Hadoop executable: (详细解决方案)
  • Qt中的动态链接库编程(Q_DECL_IMPORT、Q_DECL_EXPORT)
  • 基于SpringBoot+Gpt个人健康管家管理系统【提供源码+答辩PPT+参考文档+项目部署】
  • 【大模型LLM面试合集】大语言模型架构_chatglm系列模型
  • STM32移植RT-Thread---时钟管理
  • 【MyBatis源码】CacheKey缓存键的原理分析
  • 【AI照片数字人整合包及教程】EchoMimic:开启照片数字人的新纪元
  • 【启明智显技术分享】开发Model系列遇到像素时钟Pclk与接口时钟SCL相关问题
  • macOS 开发环境配置与应用开发指南
  • 使用 OpenCV 读取和显示图像与视频
  • Flutter鸿蒙next中封装一个输入框组件
  • 数据结构--二叉树_链式(下)
  • Node.js:Express 中间件 CORS 跨域资源共享
  • ETLCloud怎么样?深度解析其在数据管理中的表现
  • 小菜家教平台(二):基于SpringBoot+Vue打造一站式学习管理系统
  • 数据结构与算法——Java实现 54.力扣1008题——前序遍历构造二叉搜索树
  • C语言中如何实现动态内存分配
  • Unity网络开发基础(part5.网络协议)
  • 软硬链接与动静态库
  • [N-155]基于springboot,vue宿舍管理系统
  • Java项目实战II基于Spring Boot的交通管理在线服务系统设计与实现(开发文档+数据库+源码)
  • VSCode Markdown pdf导出修改字体、行距等
  • MySQL之JDBC入门详解