针对ROS配置VScode开发环境(catkin_make 或 catkin build)

2023-05-16

针对ROS配置VScode开发环境(catkin_make 或 catkin build)

使用catkin_make

ubuntu 18的vscode配置ros开发环境:

catkin_make -DCMAKE_EXPORT_COMPILE_COMMANDS=Yes

ctrl+shift+p,配置c_cpp_properties.json,修改成如下:

// "intelliSenseMode": "gcc-x64",
// "compilerPath": "/usr/bin/gcc",
// "cStandard": "gnu11",
// "cppStandard": "gnu++14",
// "compileCommands": "${workspaceFolder}/build/compile_commands.json"
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "clang-x64",
"compileCommands": "${workspaceFolder}/build/compile_commands.json"

}

注意不仅仅是加上compileCommands,还有defines cStandard等等都要换

如我自己的配置文件:

{
    "configurations": [
        {
            "browse": {
                "databaseFilename": "",
                "limitSymbolsToIncludedHeaders": true
            },
            "includePath": [
                "/home/kyle/ros/kyle_ws/devel/include/**",
                "/opt/ros/melodic/include/**",
                "${workspaceFolder}/**",             //工作空间内的所有.h文件,之后就不需要在写头文件的绝对或相对路径了
                "/usr/include/**"
            ],
            // "name": "ROS",
            // "intelliSenseMode": "gcc-x64",
            // "compilerPath": "/usr/bin/gcc",
            // "cStandard": "gnu11",
            // "cppStandard": "gnu++14",
            // "compileCommands": "${workspaceFolder}/build/compile_commands.json"
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "clang-x64",
            "compileCommands": "${workspaceFolder}/build/compile_commands.json"
        }
    ],
    "version": 4
}

使用catkin build

关于CMAKE_EXPORT_COMPILE_COMMANDS

  • 确保catkin_tools 工作空间被设置成生成compile_commands.json文件

  • 可以设置 CMAKE_EXPORT_COMPILE_COMMANDS 的值(ON或者1)去启动

  • 设置完编译参数后需要重构工作空间

  • 之后 compile_commands.json 便被生成

设置编译参数并且重新编译整个工作空间:

catkin config --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
catkin build

如果有其他编译参数也希望被修改,例如 -DCMAKE_BUILD_TYPE=Debug.

另一种选择是直接修改.catkin_tools/profiles/<profile_name>/config.yaml 文件的 cmake_args 部分:

cmake_args:
- -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
- -DCMAKE_BUILD_TYPE=Debug

在VS code中可以智能索引:

ctrl+shift+p打开c_cpp_properties.json

将如下部分:

"name": "ROS",
"intelliSenseMode": "gcc-x64",
"compilerPath": "/usr/bin/gcc",
"cStandard": "gnu11",
"cppStandard": "gnu++14",

改成

"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c11",
"cppStandard": "c++14",
"intelliSenseMode": "gcc-x64",
"compileCommands": "${workspaceFolder}/build/compile_commands.json",
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

针对ROS配置VScode开发环境(catkin_make 或 catkin build) 的相关文章

随机推荐

  • An Introduction to Deep Learning for the PhysicalLayer

    An Introduction to Deep Learning for the PhysicalLayer I INTRODUCTION 这段主要讲了文章的主要工作 将发射机 通道和接收器作为一个自动编码器 xff0c 对于给定的损失函数
  • 机器学习调制解调器:ML将如何改变我们设计下一代通信系统的方式

    所以 xff0c 我听到你们都在问 xff0c 我们都失业了吗 通信工程师是机器崛起的又一个受害者吗 幸运的是 xff0c 本文中的答案是否定的 但是Nathan Ben和Tim指出了一种新的方式来指定和设计通信系统 xff0c 这可能会永
  • git clone指定分支

    技术背景 Git是代码版本最常用的管理工具 xff0c 此前也写过一篇介绍Git的基本使用的博客 xff0c 而本文介绍一个可能在特定场景下能够用到的功能 直接拉取指定分支的内容 Git Clone 首先看一下如果我们按照常规的操作去拉取一
  • PX4最新版ubuntu编译环境搭建

    PX4最新版ubuntu编译环境搭建 本博客的撰写主要也是博主的自己血泪之路 xff0c 参考了各种博客 xff0c 然而对于我并没有什么卵用 xff0c 简直是成功的都一样 xff0c 不成功的各有各的不同 xff0c 最后在快要放弃而转
  • RTOS滴答Tick设置多少才合适

    本文转载 xff0c 留作笔记 xff0c 如有侵权 xff0c 请联系删除 xff0c 原文链接地址 xff1a 嵌入式开发 RTOS滴答Tick设置多少才合适 xff1f qq com https mp weixin qq com s
  • Darknet-Deep_sort_pytorch 无人机跟踪识别记录

    创建数据集 使用labelme 构造voc数据集格式 转换txt为xml 开始训练 span class token function sudo span span class token function nohup span darkn
  • Docker安装Ubuntu

    local footstep 64 ubuntu ifconfig docker0 flags 61 4163 lt UP BROADCAST RUNNING MULTICAST gt mtu 1500 inet 172 17 0 1 ne
  • MSCKF学习记录

    MSCKF相关资料 1 github参考实现 xff1a daniilidis group msckf mono https github com daniilidis group msckf mono 2 CSND参考博客 xff1a m
  • ARM linux 串口接收

    C语言read函数的使用以及串口初始化的调用 废话不多说 xff0c 直接上代码 xff0c 有疑问可以看我之前的文章 https blog csdn net m0 38053897 article details 108816643 ht
  • 设计模式--状态模式(C语言实现)

    原创 亚索老哥 embed linux share 模式动机 状态模式 状态机 是嵌入式开发中最重要 最核心的设计模式之一 xff0c 毫不夸张的说 xff0c 是否熟练掌握状态模式 xff0c 很大程度上直接决定了嵌入式工程师的代码掌控能
  • 张正友相机标定 及 一文讲透鱼眼相机畸变矫正,及目标检测项目应用

    参考链接 xff1a 相机标定 张正友标定法 一文讲透鱼眼相机畸变矫正 xff0c 及目标检测项目应用
  • select在ios中选项空白

    出现这个问题是因为粗心吧 解决了好久 最后发现是个笑话 lt select name 61 span class hljs string 34 34 span id 61 span class hljs string 34 34 span
  • RTOS中消息、信号量、互斥量、事件使用区别(类比理解)

    RTOS中消息 信号量 互斥量 事件使用区别 xff08 类比理解 xff09 注 xff1a 本文仅代表本人学习中的理解 xff0c 未必正确 xff0c 欢迎指正 xff01 1 消息 1 1 对FreeRTOS 就像往火车上装货卸货
  • PuTTY/Xshell连接远程服务器提示connection time out的解决方案

    刚注册一台云服务器时 xff0c 想使用PuTTY Xshell来在本地远程连接服务器 xff0c 发现会出现以下错误提示 xff1a Network error Connection time out 对于新注册的云服务器 xff0c 什
  • Ubuntu编译环境配置

    1 升级gcc sudo apt get update sudo apt get install software properties common sudo apt get install gcc 5 g 43 5 sudo apt g
  • 多传感器融合的四种经典结构

    人一生的成长过程中 xff0c 也不总是只有一种必然性 xff0c 很多时候 xff0c 人生需要选择 请选择有尊严的活着 xff0c 告别卑微 xff01 转一篇信息融合的结构概述 xff1a 多传感器信息融合的结构模型一般有四种基本形式
  • 认识Make、Makefile、CMake和CMakeLists

    一 Make 在 认识编译器和C C 43 43 编译 一文中介绍过 xff0c 一个 c cpp 文件从源文件到目标文件的过程叫做编译 xff0c 但是一个项目中不可能只存在一个文件 xff0c 这就涉及到多个文件的编译问题 xff0c
  • 卡尔曼滤波基础---MATLAB

    Karl Gauss xff08 1795年 xff09 行星轨道测量 最小二乘估计法 Norbert Wiener xff08 1942年 xff09 火力控制系统精确跟踪 Wiener Kolmogorov滤波 Rudolf Kalma
  • 位姿估计 -- PPF算法的OpenCV实现

    给出cpp代码 xff0c 复制粘贴改一下文件路径记得 1 pose cpp span class token comment span span class token comment Created by yaohua on 2020
  • 针对ROS配置VScode开发环境(catkin_make 或 catkin build)

    针对ROS配置VScode开发环境 xff08 catkin make 或 catkin build xff09 使用catkin make ubuntu 18的vscode配置ros开发环境 xff1a catkin make span