【已解决】vscode开发ros,快捷键编译

vscode中task.json文件用于定义和配置可以在 VS Code 内部运行的任务(tasks),在这里说的就是将执行ctrl+shift+b映射到执行catkin_make命令

最开始是看autolabor的视频跟着改的task文件(如下)

{
// 有关 tasks.json 格式的文档,请参见
    // https://go.microsoft.com/fwlink/?LinkId=733558
    "version": "2.0.0",
    "tasks": [
        {
            "label": "catkin_make:debug", //代表提示的描述性信息
            "type": "shell",  //可以选择shell或者process,如果是shell代码是在shell里面运行一个命令,如果是process代表作为一个进程来运行
            "command": "catkin_make",//这个是我们需要运行的命令
            "args": [],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”
            "group": {"kind":"build","isDefault":true},
            "presentation": {
                "reveal": "always"//可选always或者silence,代表是否输出信息
            },
            "problemMatcher": "$msCompile"
        }
    ]
}

但貌似因为视频是20年的,但现在已经25年,vscode更新了一些东西,导致出现了如下报错

/usr/bin/bah:catkin_make:command not found

终端进行“/usr/bin/bash '-c', 'catkin_make'"启动失败(退出代码:127)

最终通过大神的解决方法——原帖终于解决

具体方法为修改task文件,让vscode配置catkin配置的更适合用于 ROS 项目,其中使用了专门的 catkin_make 任务类型和 catkin-gcc 问题匹配器

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "catkin_make",
            "args":[
                "--directory",
                "./"
            ],
            "problemMatcher":[
                "$catkin-gcc"
            ],
            "group": {"kind": "build","isDefault": true
            },
            "label": "catkin_make:build"
        }
    ]
}

最终解决,目前稳定运行

另外,如果出现python3-catkin-pkg 依赖问题,具体为

python3-rosdep-modules : 依赖: python3-catkin-pkg-modules (>= 0.4.0) 但是它将不会被安装

据我的经验来说是完崩了,按照其他帖子的方法是卸载python3-catkin-pkg换一个低版本的,但还是会报错,进一步的错目前又没人解决,所以建议是直接快照恢复,然后改下task就好了

### 如何在 Ubuntu 上配置 Visual Studio Code 编译 ROS 工程 #### 1. 安装 VSCode 可以通过多种方法安装 VSCode,在 Ubuntu 系统中推荐通过官方下载地址获取最新版本并完成安装。具体操作可以参考官方文档或软件商店直接安装[^1]。 #### 2. 配置 ROS 插件 为了更好地支持 ROS 开发,建议安装以下扩展插件: - **C/C++**: 提供 IntelliSense 和调试功能。 - **Python**: 如果涉及 Python 脚本开发,则需要此插件。 - **ROS**: 这是一个专门为 ROS 设计的插件集合,提供语法高亮、自动补全等功能[^2]。 #### 3. 初始化 ROS 工作空间 确保已经创建了一个标准的 catkin 工作空间结构。通常情况下,工作空间路径如下所示: ```bash mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make source devel/setup.bash ``` 上述命令用于初始化一个基本的工作空间,并生成必要的构建文件[^3]。 #### 4. 打开工作空间到 VSCode 中 启动 VSCode 并打开 `~/catkin_ws` 文件夹作为根目录。这一步非常重要,因为后续所有的配置都将基于该工作空间展开[^4]。 #### 5. 配置 CMakeTools 设置 VSCode 的 CMakeTools 是管理 CMake 构建过程的核心工具之一。以下是具体的设置步骤: - 创建一个新的 CMakeLists.txt 或者加载已有的 CMakeLists.txt 文件。 - 使用快捷键 `Ctrl+Shift+P` 输入 “CMake: Select Kit”,选择合适的编译器套件(通常是 GCC)。 - 继续输入 “CMake: Select Variant” 来指定变体,默认为 Release 模式。 - 接下来运行 `CMake: Configure` 命令来生成 build 文件。 一旦这些步骤完成后,就可以执行 Build 操作了。点击左侧活动栏中的三角形按钮即可触发构建任务。 #### 6. 自定义 Tasks 和 Launch 配置 对于复杂的项目可能还需要进一步调整 `.vscode/tasks.json` 和 `.vscode/launch.json` 文件的内容以满足特定需求。例如,添加额外的任务参数或者修改默认调试行为。 #### 7. 解决常见问题 如果遇到诸如无法找到头文件等问题时,请确认 `include_directories(${catkin_INCLUDE_DIRS})` 是否被放置于 `catkin_package()` 函数调用之后的位置。这是由于顺序依赖关系所引起的现象。 --- ### 示例代码片段 下面展示一段简单的 CMakeLists.txt 示例以及对应的 main.cpp 文件内容。 **CMakeLists.txt** ```cmake cmake_minimum_required(VERSION 3.0.2) project(example_node) find_package(catkin REQUIRED COMPONENTS roscpp std_msgs) add_executable(talker src/talker.cpp) target_link_libraries(talker ${catkin_LIBRARIES}) catkin_package() include_directories(${catkin_INCLUDE_DIRS}) ``` **talker.cpp** ```cpp #include "ros/ros.h" #include "std_msgs/String.h" int main(int argc, char **argv) { ros::init(argc, argv, "example_talker"); ros::NodeHandle nh; ros::Publisher chatter_pub = nh.advertise<std_msgs::String>("chatter", 1000); ros::Rate loop_rate(10); while (ros::ok()) { std_msgs::String msg; msg.data = "hello world"; chatter_pub.publish(msg); ros::spinOnce(); loop_rate.sleep(); } } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值