ubuntu配置vscode c++环境

下载vscode deb安装包

Get Started with C++ on Linux in Visual Studio Code

  1. 安装vscode
bash 复制代码
sudo dpkg -i code_1.83.0-1696350811_amd64.deb
  1. 确保gcc编译器已经安装
bash 复制代码
g++ --version

如果没有安装,执行以下命令安装

bash 复制代码
sudo apt-get update
sudo apt-get install build-essential gdb

3.安装c++扩展

  1. 创建一个hello world程序

进入命令行窗口,创建一个空的文件夹来存放你的vscode工程。然后创建一个子文件夹helloworld,进入并且打开vscode。

bash 复制代码
mkdir projects
cd projects
mkdir helloworld
cd helloworld
code .

code .命令可以打开当前工作目录的VS Code,当你进入到这个例子,你将会在.vscode下创建三个文件夹

  • task.json(编译器相关的设置)
  • launch.json(调试器相关的设置)
  • c_cpp_properties.json(编译器路径和智能感知设置)
  1. 新建一个hello world源代码
cpp 复制代码
#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main()
{
    vector<string> msg {"Hello", "c++", "world","VS Code","and the C++ extension!"};
    for (const string & word: msg)
    {
        cout << word << " ";
    }
    cout << endl;
}

运行helloworld程序

  1. 打开helloworld.cpp保证该文件处于激活状态
  2. 按住运行选择键,选择运行C/C++文件
  3. 从系统检测编译器列表中选择g++构建和调试激活文件(这个只会在你第一次运行文件时出现,让你选择一个编译器,这个编译器将会保存在一个默认的编译器设置中,tasks.json)
  4. 编译成功后,你的项目输入将会出现在集成的终端中

注意:第一次运行项目时,C++扩展会创建一个tasks.json文件,你可以在.vscode中找到它,tasks.json主要存放一些构建的配置信息

配置信息tasks.json

cpp 复制代码
{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ 生成活动文件",
            "command": "/usr/bin/g++",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

有关配置文件的一些变量说明

Visual Studio Code Variables Reference

args数组指定命令行参数将由g++来执行,这些参数必须是编译器所期望的

task告诉g++拿到这个激活状态下的文件{file},然后编译它,并创建一个可执行文件在当下的文件夹中,{fileBasenameNoExtension},最后会形成一个helloworld可执行文件

label的值可以任意命名

detail最好区别于相似的任务

CMake工具包

安装cmake tools

cmake是一个开源的跨平台工具,可以使用编译器和平台独立性配置文件来生成天然的构建工具文件来指定给你的编译器和平台。

cmake工具集成了vscode和cmake,使得配置、构建、和调试c++程序变得简单

相关推荐
syagain_zsx36 分钟前
ODB 与 MySQL:C++ 里的 ORM 实践(类即表、事务铁律与查询封装)
开发语言·数据库·c++·mysql·工具库·1024程序员节
小鱼仙官37 分钟前
使用Qt封装C/C++ 动态库 用于第三方调用
c语言·c++·qt
晚风予卿云月1 小时前
【C++高并发内存池】 1.定长内存池的实现
开发语言·c++·内存管理
闻缺陷则喜何志丹2 小时前
【c++20】协程与屏障
c++·算法·c++20·携程·屏障
会编程的小孩2 小时前
C++ 内存分区、堆与栈、static、union 完整修正版文档
c++
多弗朗皮卡丘3 小时前
C++的类型转换
开发语言·c++
火2253 小时前
# C++ 微服务即时通讯系统(三):网关设计——HTTP 请求、Session 鉴权与 WebSocket 通知上一篇
c++·http·微服务
承渊政道3 小时前
Linux网络学习【从深入理解网络层原理到IP分片与重组全过程剖析】
linux·计算机网络·ubuntu·ip分片与重组
~城南花已开~4 小时前
Redfish 事件接收服务搭建指南(Ubuntu Server 实测)
linux·服务器·python·ubuntu
C++ 老炮儿的技术栈4 小时前
机器人的坐标,像 XYZ 的坐标值,是用单精度浮点还是用双精度浮点?
c语言·c++·人工智能·单片机·c