ubuntu下vscode配置C++项目编译调试(json文件),以高翔octomap教程为例,顺便解决vscode无法设置断点问题.

首先展示一下文件路径结构:
项目结构
其中C++文件在src目录中,.vscode以及CMakeLists.txt在上层目录。

1.编译设置

该项目的编译是在build.sh文件中,内容就是

cd build
cmake ..
make

编译功能对应的vscode设置文件是tasks.json,内容如下:

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build", //标签,内容和launch.json里prelaunch一致
            "type": "shell",
            "command": "./build.sh", //运行命令
            "args": [
                "-g",
                "${file}",
                "-o",
                "${workspaceFolder}/${fileBasenameNoExtension}",
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

实际上对于该项目的编译,由于其写在了一个shell文件里,所以我们的编译命令(终端中输入的命令)就是:

./build.sh

其他没有什么要改的.这里展示一下build里面的东西:

#!/bin/bash
builddir="./build/"
if [ ! -x "$builddir" ]; then
    mkdir "$builddir"
fi
cd build;
cmake ..
make -j8 2>error.log;
head -n 20 error.log;
cd ..

2. 运行设置

项目运行功能对应vscode里的launch.json文件,先展示一下:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        
        {
            "preLaunchTask": "Build", //注意这里一定要和tasks.json里的label名称一致
            "cwd": ".", //默认设置,没有会报错
            "type": "cppdbg", //cppdbg,如果提示错误找不到,就去装C++插件,或重启软件,右下方提示方面点启用
            "request": "launch",
            "name": "(gdb)Launch",
            "program": "/home/ubuntu/ADAXI/octomap/octomap_tutor-master/bin/pcd2octomap", //这个是编译完成后的可执行文件,也就是你需要调试的文件
            "args": ["/home/ubuntu/ADAXI/octomap/octomap_tutor-master/data/sample.pcd",
                "/home/ubuntu/ADAXI/octomap/octomap_tutor-master/data/sample.bt" //运行该文件需要的参数,我这里需要两张图

            ]
        }
    ]
}

无法设置断点的问题

在调试的时候如果有CMakeLists,则需要在里面声明是debug不是release:

CMAKE_MINIMUM_REQUIRED( VERSION 2.8 )
PROJECT( octomap_tutor )

SET(CMAKE_CXX_COMPILER "g++")
SET( CMAKE_BUILD_TYPE Debug  )
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
SET(CMAKE_CXX_FLAGS -std=c++11)
ADD_SUBDIRECTORY( ${PROJECT_SOURCE_DIR}/src )

这里的CMAKE_BUILD_TYPE如果时Release则要改成Debug.

其他应该没啥问题了.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值