【Ubuntu】手把手教你打造 【VS Code + Cmake + C/C++】 开发环境

下载安装VSCODE+CMAKE

Cmake安装请看我的这篇帖子:

https://blog.csdn.net/TU_Dresden/article/details/122373789?spm=1001.2014.3001.5501

VScode下载:

https://vscode.cdn.azure.cn/stable/f80445acd5a3dadef24aa209168452a3d97cc326/code_1.64.2-1644445741_amd64.deb

下载好之后,使用dpkg命令安装

sudo dpkg -i codexxxxxx.deb

安装vscode相关插件

点击左侧按钮进入vscode的插件商店,安装Microsoft出品的两个插件,C/C++以及Cmake,装好之后重启vscode。

建立工作目录

vscode需要一个文件夹作为工作目录(workspace),相当于其他IDE的项目文件夹。所以我们先建立一个文件夹,用作工作目录。进入工作目录,用code .指令打开vscode,会自动加载工作目录。

mkdir cmakeproject
cd cmakeproject
code .

建立src和include目录及主程序

通常来说,一个规范的c++项目需要src和include两个文件夹,分别用于存放类的头文件和源文件。我们在工作空间建立src和include,分别创建一个头文件 archer.harcher.cpp

最后,创建一个 main.cpp ,用作主程序。最后如图所示:

在这里插入图片描述
代码如下:

archer.h

#pragma once
#include <iostream>
#include <string>
using namespace std;

class archer
{
private:
    string name;
    int arrow_amount;
public:
    archer(string name_input);
    ~archer();
    void shoot();
};

archer.cpp

#include "archer.h"

archer::archer(string name_input)
{
    this->name = name_input;
    this->arrow_amount = 100;
}

archer::~archer()
{
}

void archer::shoot()
{
    cout << "I have" << this->arrow_amount << "arrows!" << endl;
    cout << "shoot!" << endl;
    this->arrow_amount = this->arrow_amount - 1;
    cout << "I have" << this->arrow_amount << "arrows now!" << endl;
    cout << "Finish!" << endl;
}

main.cpp

#include "archer.h"

int main()
{
    archer a_good_archer("yangyouji");
    a_good_archer.shoot();
    return 0;
}

建立build目录及配置cmake

vscode本身并不具备编译功能,需要借助cmake和gcc来实现编译。所以本质上,我们是通过一系列配置,使vscode能够自动调用cmake的指令,在底层通过cmake来编译并运行我们的程序。

所以,我们需要先配置cmake的环境。我们先在工作空间根目录创建一个 CMakeLists.txt ,这个文件是cmake的编译单,告诉cmake要编译些啥,头文件在哪,编译成什么样子。另外还要新建一个 build 文件夹,用于存放cmake产生的中间文件和编译好的可执行程序。如图所示:

在这里插入图片描述
附上CMakeLists.txt的代码:

cmake_minimum_required(VERSION 3.0)

project(MyCmakeProj)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")

set(CMAKE_BUILD_TYPE Debug)

include_directories(${CMAKE_SOURCE_DIR}/include)

add_executable(my_exe main.cpp src/archer.cpp)

此时,点击vscode菜单栏的“终端”,开个新终端,在build目录输入cmake指令,再输入make进行编译,就可以生成可执行文件了。

cd build
cmake ..
make

在这里插入图片描述

配置json文件 自动调用cmake和gdb

刚才我们实现了手动编译运行。那么能否让vscode像其他IDE一样自动进行编译,运行以及下断电debug呢?当然可以,只需要配置tasks.json 以及 launch.json 两个文件即可。

launch.json主要描述了两件事,生成可执行文件(编译),运行可执行文件。而生成可执行文件的过程,则在tasks.json中描述。也就是说,在我们点击vscode的运行(Ctrl+F5)或调试运行(F5)之后,vscode会去调用tasks.json进行编译,再调用launch.json运行可执行文件或调试(下断点运行)可执行文件。

在这里插入图片描述
Ctrl+Shift+P调出vscode控制台,输入task,生成一个tasks.json文件,替换为以下内容:

{   
    "version": "2.0.0",
    "options": {
        "cwd": "${workspaceFolder}/build"
    },
    "tasks": [
        {
            "type": "shell",
            "label": "cmake",//第一个动作,执行cmake
            "command": "cmake",
            "args": [
                ".."
            ]
        },
        {
            "label": "make",//第二个动作,执行make
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "command": "make",
            "args": [
                

            ]
        },
        {
            "label": "Build",//把上面的两个动作绑定,命名为Build
			"dependsOrder": "sequence", 
            "dependsOn":[
                "cmake",
                "make"
            ]
        }
    ]

}

上面的tasks.json描述了编译过程。可以看出,这套指令有两个步骤,cmake … 和 make ,刚好是我们上一节手动输入的编译指令。

在这里插入图片描述
点击左侧瓢虫按钮,创建launch.json,替换为如下内容:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            //只需要改两处
            //第一处,在这里指定你的可执行文件的路径和名称
            "program": "${workspaceFolder}/build/my_exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "preLaunchTask": "Build",//第二处,绑定刚才的task
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

这里我们指定了可执行文件的路径以及上面tasks.json对应的label名,绑定编译指令。

此时,按下Ctrl+F5,成功运行,至此,VSCODE + CMAKE 环境配置成功,可以快乐地进行C/C++开发了!

在这里插入图片描述

  • 7
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

工具人ToolBoy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值