Linux下使用VSCode和CMake搭载C/C++开发环境

Linux下使用VSCode和CMake搭载C/C++开发环境

  • 一. 开发环境介绍
    • 1. 最终目的
    • 2. 所使用的工具介绍
  • 二. 开发工具安装
    • 1. Visual Studio Code
    • 2. 安装编译器和调试器
    • 3. 安装CMake
  • 三. 开发环境配置
    • 1. 创建测试目录并用VSCode打开
    • 2. 编写cpp和CMake文件
    • 3. 编写json脚本实现一键自动化编译调试
  • 四. 编译和调试工程
  • 五. 总结

一. 开发环境介绍

1. 最终目的

Visual Studio Code虽然只是一款编辑器,但是通过合理配置后也可以和Windows下的Visual Studio IDE一样,只需按F5即可实现编译,运行,调试一条龙服务,免去了Linux下开发C/C++的各种繁琐操作。

2. 所使用的工具介绍

  • Linux系统:这里通过Deepin20.1演示

我在ubuntu20.04也搭载过步骤一样,其他发行版应该也只有安装命令不同

  • Visual Studio Code
  • GCC编译器
  • GDB调试器
  • CMake工具

二. 开发工具安装

1. Visual Studio Code

官网:https://code.visualstudio.com/
注意选择自己发行版对应的包

Linux下使用VSCode和CMake搭载C/C++开发环境_第1张图片
下载完后右键安装即可,成功安装后终端输入code --version可以查看到版本号

Linux下使用VSCode和CMake搭载C/C++开发环境_第2张图片

2. 安装编译器和调试器

sudo apt update
sudo apt install build-essential gdb

成功安装后可以查到版本号

Linux下使用VSCode和CMake搭载C/C++开发环境_第3张图片

3. 安装CMake

sudo apt install cmake

成功安装后可以查到版本号

Linux下使用VSCode和CMake搭载C/C++开发环境_第4张图片

三. 开发环境配置

1. 创建测试目录并用VSCode打开

mkdir test01  #创建一个目录test01
cd test01     #进入test01
code .        #VSCode打开当前目录

VSCode打开后先安装插件。

Linux下使用VSCode和CMake搭载C/C++开发环境_第5张图片
搜索C/C++和CMake把下面3个插件安装了。

Linux下使用VSCode和CMake搭载C/C++开发环境_第6张图片

2. 编写cpp和CMake文件

安装完成后按快捷键Ctrl+Shift+e回到文件管理列表,创建build目录,hello.cpp和CMakeLists.txt文件。

注意:CMakeLists.txt必须是这个命名,注意大小写

Linux下使用VSCode和CMake搭载C/C++开发环境_第7张图片

//hello.cpp

#include 
using namespace std;

int main()
{
    cout << "Hello World!" << endl;
    cout << "Hello Linux!" << endl;
    cout << "hello VSCode!" << endl;

    return 0;
}
#CMakeLists.txt

cmake_minimum_required(VERSION 3.0)
project(test01)

#编译配置选择"Debug"才能调试
set(CMAKE_BUILD_TYPE "Debug")
#set(CMAKE_BUILD_TYPE "Release")

#将hello.cpp生成test01可执行文件
add_executable(test01 hello.cpp)

3. 编写json脚本实现一键自动化编译调试

  • tasks.json

Linux下使用VSCode和CMake搭载C/C++开发环境_第8张图片
然后选择C/C++: g++ 生成活动文件,复制以下内容到tasks.json文件。

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "options": {
        "cwd": "${workspaceFolder}/build"
    },
    "tasks": [
        {
            "label": "cmake",
            "type": "shell",
            "command": "cmake",
            "args": [".."]
        },
        {
            "label": "make",
            "type": "shell",
            "command": "make",
        },
        {
            //对应launch.json里的"preLaunchTask": "Build"
            //调试前执行cmake和make两条终端命令实现自动编译
            "label": "Build",
            "dependsOrder": "sequence",
            "dependsOn":[
                "cmake",
                "make"
            ],
        }
    ]
}
  • launch.json

Linux下使用VSCode和CMake搭载C/C++开发环境_第9张图片

复制以下内容到launch.json文件,如果"externalConsole": false这行报错,注释掉就好。

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/test01",//可执行文件的位置!
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            //下面这行是调试前需要执行的任务,对应上面tasks.json里的Build
            "preLaunchTask": "Build"
        }
    ]
}

四. 编译和调试工程

  • 回到hello.cpp,在main函数第一行打一个断点。

Linux下使用VSCode和CMake搭载C/C++开发环境_第10张图片

  • 按下F5后会自动进行编译,最后进入调试模式,在下方输出窗口选择VSCode内置的终端。

Linux下使用VSCode和CMake搭载C/C++开发环境_第11张图片

  • 按F10运行下一步,TERMINAL可以看到输出结果。

Linux下使用VSCode和CMake搭载C/C++开发环境_第12张图片

  • 按F10运行下一步。

Linux下使用VSCode和CMake搭载C/C++开发环境_第13张图片

  • 最后按F5程序运行到最后并结束。

Linux下使用VSCode和CMake搭载C/C++开发环境_第14张图片

五. 总结

此文只是以最简单的单文件工程来演示VSCode的一键编译调试,后续可深入研究学习的内容:

  • gcc/g++编译器和GDB调试器在终端下的用法
  • CMake生成makefile的方法
  • 编写适合自己工程的json脚本

你可能感兴趣的:(VS,Code,vscode,linux,c语言)