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

2022-07-11 11:05:56

下载安装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 cmakeprojectcd cmakeproject
code.

建立src和include目录及主程序

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

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

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

archer.h

#pragmaonce#include<iostream>#include<string>usingnamespace std;classarcher{private:
    string name;int arrow_amount;public:archer(string name_input);~archer();voidshoot();};

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"intmain(){
    archera_good_archer("yangyouji");
    a_good_archer.shoot();return0;}

建立build目录及配置cmake

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

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

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

cmake_minimum_required(VERSION3.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++开发了!

在这里插入图片描述

  • 作者:组织八号头目
  • 原文链接:https://blog.csdn.net/TU_Dresden/article/details/122414454
    更新时间:2022-07-11 11:05:56