VSCode搭建C/C++环境,配置和插件推荐

VSCode配置C++环境

一、环境说明

首先说明本人的环境为Ubuntu20.04LTS

二、安装

1. 下载

官网下载地址

wget -c -P ~/Downloads https://vscode.cdn.azure.cn/stable/ff915844119ce9485abfe8aa9076ec76b5300ddd/code-stable-1587060099.tar.gz
# 下载安装包,参数-c为断点续传,-P为指定保存目录
cd ~/Downloads

2. 安装

cd ~/Downloads
# 进入目录
tar zxvf code-stable-1587060099.tar.gz
# 解压安装包
sudo mv -r VSCode-linux-x64 /opt
# 解压后的文件移动到指定目录
sudo ln -s /opt/VSCode-linux-x64/code /usr/bin/code
# 创建软链接命令
code
# 打开软件

个人比较喜欢ALT+F2命令启动软件

3. 创建桌面图标

这里给出添加启动图标和固定到dock的方法

cd /usr/share/applications
# 进入桌面文件目录
sudo touch vscode.desktop
# 创建桌面文件
sudo vim vscode.desktop
# 编辑

添加文件内容如下:

[Desktop Entry]
Name=VSCode
Comment=code
Exec=/opt/VSCode-linux-x64/code
Icon=/opt/VSCode-linux-x64/resources/app/resources/code.png
Terminal=false
Type=Application
Categories=Application;
Encoding=UTF-8
StartupNotify=true

二、配置C++环境

本人是用Sync setting同步的VSCode设置,所以这里直接使用同步的方法设置

这里直接给我的配置地址(Windows 可用)

原本在这里放了3个配置,都被清空了,还不止一次,隐藏了,要的话可以留言或者私信

同步完设置后请清空Gist ID后按自己的需求和喜好增加或者删除插件

1. 安装扩展Settings Sync

在扩展商店搜索setting sync 安装

在窗口输入Gist IDtoken然后Shift+ Alt +D下载设置,可以看到code下面输出栏提示正在安装插件,完成后重新启动VSCode,下面列出的插件会全部被安装

这里列出我的插件

Bracket Pair Colorizer 2
# 彩色括号
carbon-now-sh
# 代码用图片形式分享
Change Case
# 快速变换大小写
Chinese (Simplified) Language Pack for Visual Studio Code
# 界面设置为中文
Code Runner
# 一键运行代码
Codelf
# 变量命名
GitLens — Git supercharged
# git扩展
indent-rainbow
# 彩色缩进
koroFileHeader
# 自动插入文件头
Local History
# 在本地自动保存副本,快速回滚
Markdown All in One
# Markdown支持
Partial Diff
# 文件比较,代码比较插件
Rainbow Brackets
# 彩色括号
rainbow-highlighter
# 直观的变量区分
Todo Tree
# 待办事项,TODO、FIXME、NOTE支持自定义
Vim
# vim插件,使支持Vim的操作
vscode-icons
# 图标插件
python
# python
C/C++
# C/C++

关于VSCode的基本设置和上述插件的部分设置可以查看settings.json进行调整

2. C/C++调试环境配置

1> 查看g++

g++ -v
# 查看

如果没有安装

sudo apt install gcc
sudo apt install g++
g++ -v

2> 运行代码

写一小段代码test.cpp

#include
using namespace std;

int main()
{
	cout << "Hello World!" << endl;
    return 0;
}

由于安装了code runner插件,只要点击代码区右上角的三角形(Run Code)就可以直接运行代码
如果想要进行断点调试还需要配置调试环境

3> launch.json

launch.json为执行文件,负责启动任务

按F5调试,出现调试环境,选择C++(GDB/LLDB)---- 默认配置,开始配置launch.json

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/Debug/${fileBasenameNoExtension}.out",	//可执行文件的路径,必须和tasks.json中生成的文件路径一致
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "Test-Debug",	//需要自行添加,非常重要
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}

4> tasks.json

tasks.json为任务配置文件,负责编译和链接生存目标文件

直接在生成的 .vsocde文件夹新建一个tasks.json添加内容

{
	// See https://go.microsoft.com/fwlink/?LinkId=733558
	// for the documentation about the tasks.json format
	"version": "2.0.0",
	"tasks": [
		{
			"label": "Test-Debug", //必须和上面Launch.json中preLaunchTask一样
			"type": "shell",
			"command": "g++",
			"args": [
				"-Wall",
				"-g",
				"${file}",
				"-o",
				"Debug/${fileBasenameNoExtension}.out"	//在Debug文件夹中生成同名目标文件
			]
		}
	]
}

5> c_cpp_properties.json

.vscode文件夹新建文件c_cpp_properties.json添加内容

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "/usr/include/c++/9",
                "/usr/include/x86_64-linux-gnu/c++/9",
                "/usr/include/c++/9/backward",
                "/usr/lib/gcc/x86_64-linux-gnu/9/include",
                "/usr/local/include",
                "/usr/include/x86_64-linux-gnu",
                "/usr/include"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/cpp",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}

如果你的系统环境和我的不一样,上述includepath可用命令查看,进行替换

gcc -v -E -x c++ -

6> 多文件编译环境

* 查看make
make -v

如果没有安装

sudo apt install make
make -v
* tasks.json
{
	// See https://go.microsoft.com/fwlink/?LinkId=733558
	// for the documentation about the tasks.json format
	"version": "2.0.0",
	"tasks": [
		{
			"label": "Test-Make", //必须和上面Launch.json中preLaunchTask一样
			"type": "shell",
			"command": "make",
		}
	]
}
* launch.json
{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/Test",	//可执行文件的路径,必须和tasks.json中生成的文件路径一致
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "Test-Make",	
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}
*makefile

Makefile的编写还是需要自己学习,这里举个简单的例子方便理解

main.cpp``````test.cpp``````head.h三个文件和Makefile文件

// main.cpp
#include
#include"head.h"
using namespace std;

int main()
{
        int get_num(void);
        int test(int,int);
        int a,b,c;
        a = get_num();
        b = get_num();
        c = test(a,b);
        cout << "The number is: "<< c << endl;
        return 0;
}

// test.cpp
#include
using namespace std;

int get_num(void)
{
        int a;
        cout << "Enter a number:"<< endl;
        cin >> a;
        return a;
}                                                                     
// head.h
int test(int x, int y)
{
        if(x>y)
                return x;
        else
                return y;
}
# Makefile
Test: main.o test.o
    g++ -o Test main.o test.o  
main.o: main.cpp head.h
    g++ -g -c main.cpp
test.o: head.h test.cpp
    g++ -g -c test.cpp
clean: 
    rm main.o test.o

当程序执行make的命令时,会找到对应的Makefile文件,把文件里的命令全部执行一遍,这里的Makefile文件已经尽量细化,应该可以看懂

你可能感兴趣的:(笔记,c++,linux,ubuntu)