当前位置: 首页 > article >正文

Ubuntu+VsCode++搭建C++开发环境

Ubuntu下使用VsCode搭建C++开发环境

1、基本工具的安装

首先Ubuntu下安装好C++开发的一个些基本工具g++、gdb、make、cmake等,安装方式点这里

检查一下安装环境

$ g++ --version
g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ gdb --version
GNU gdb (Ubuntu 12.1-0ubuntu1~22.04.2) 12.1
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

$ make --version
GNU Make 4.3
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

$ cmake --version
cmake version 3.22.1

CMake suite maintained and supported by Kitware (kitware.com/cmake).

2、VsCode环境搭建

打开vscode(未安装则自行安装vscode),点击extension,搜索C++,安装c/c++插件
在这里插入图片描述

安装完成后,测试一下,创建一个新目录cpp_proj_test,用vscode打开,创建一个main.cpp文件,内容如下:

// main.cpp
#include <iostream>
using namespace std;
int main()
{
    cout << "Hello World!!!!!" << endl;
    return 0;
}

在这里插入图片描述

保存后,按ctrl+F5 不调试直接执行程序
在这里插入图片描述
这里选择上面第二个c/c++这个编译器,点击后如下
在这里插入图片描述
正常编译,查看一下下面TERMINAL终端面板,成功编译并执行了
在这里插入图片描述
这时,我们的cpp_proj_test项目目录下,多了一个编译结果文件main,以及vscode工程项目的专用配置文件.vscode/tasks.json ,如下所示
在这里插入图片描述
tasks.json的内容如下

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ build active file",
            "command": "/usr/bin/g++",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Task generated by Debugger."
        }
    ],
    "version": "2.0.0"
}

3、vscode编译调试环境配置

vscode中的重要的配置文件主要有三个:c_cpp_properties.jsonlaunch.jsontasks.json

1)c_cpp_properties.json配置

该文件是编译器的配置文件,配置包含:gcc/g++路径、include头文件路径、C++标准等。

按下ctrl+shift+P ,输入c/c++:Edit Configurations ,出现如下,选择下面第二个,自动创建一个配置文件
在这里插入图片描述

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c17",
            "cppStandard": "gnu++17",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}
2)launch.json 配置

该文件是debug调试C/C++程序(执行out文件)的配置文件,配置包含:debug类型等;tasks.json 文件告诉vscode如何编译cpp程序。这会调用 g++ 编译器将源文件编译成可执行文件。为了方便VScode编译C++代码,可以将include头文件、lib动态链接库等路径写入 tasks.json配置文件里。

点击左侧的运行与调试 ,出现下面的面板
在这里插入图片描述

点击create a launch.json file 创建一个启动配置文件 launch,json如下:

{
    // 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": []
}

launch.json配置文件修改为如下所示:

{
    // 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) Launch",
            /* 配置类型,cppdbg类型 */
            "type": "cppdbg",
            /* 请求配置类型,可以为launch(启动)或attach(附加) */
            "request": "launch",
            /* 将要进行调试的程序的路径 */
            "program": "${workspaceFolder}/${fileBasenameNoExtension}.out",
            /* 程序调试时传递给程序的命令行参数,一般设为空即可 */
            "args": [],
            /* 设为true时程序将暂停在程序入口处,一般设置为false */
            "stopAtEntry": false,
            /* 调试程序时的工作目录 */
            "cwd": "${workspaceFolder}",
            "environment": [],
            /* 调试时是否显示控制台窗口,一般设置为true显示控制台 */
            "externalConsole": true,
            "MIMode": "gdb",
            "preLaunchTask": "build",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

保存配置,进入main.cpp页面,再次按下ctrl+F5,弹出如下界面,提示未找到任务build
在这里插入图片描述
我们点击Debug Aanyway后,出现这个调试窗口,则表示成功;
在这里插入图片描述
如需要消除上面的的task任务缺失弹框,可进一步配置Tasks.json

3)tasks.json 配置

该文件是编译C/C++程序(生成out文件)的配置文件,配置包含:include头文件路径、lib链接库路径等

按键输入ctrl+shift+P,输入搜索Tasks: Run Task如下,
在这里插入图片描述
点击Tasks: Run Task,进入后,鼠标移动到c/c++: g++ build activate file后面的齿轮配置按钮
在这里插入图片描述
点击齿轮按钮Configure Task,打开Tasks.json配置文件,如下所示
在这里插入图片描述

前面launch.json中的"preLaunchTask": "build",属性,预启动的任务设置为build,则,我们需要修改tasks.json的label同样也为build即可;
修改后如下:

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "build",
            "command": "/usr/bin/g++",
            "args": [
                "-fdiagnostics-color=always",
                "-g","${file}",
                "-o","${fileDirname}/${fileBasenameNoExtension}",
                /* 项目所需的头文件路径 */
                "-I","${workspaceFolder}/include",
                "-I", "/usr/include",
				"-I", "/usr/local/include",
                /* 项目所需的库文件路径 */
                "-L", "/usr/local/lib",
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Task generated by Debugger."
        }
    ],
    "version": "2.0.0"
}

再次按下ctrl+F5,则不会再提示了
在这里插入图片描述


http://www.kler.cn/news/342605.html

相关文章:

  • C++ 泛型编程指南 非类型模板参数
  • LabVIEW提高开发效率技巧----状态保存与恢复
  • OpenCV视频I/O(20)视频写入类VideoWriter之用于将图像帧写入视频文件函数write()的使用
  • Docker极速入门一文通
  • 网络安全知识|网安问答题|OSPF报文协议|抓包工具|路由器环路|序列化与反序列化|磁盘利用率|网络攻防
  • VScode连接远程服务器踩坑实战(新版离线vscode-server安装)
  • react为什么不怕XSS
  • Stable Diffusion——stable diffusion基础原理详解与安装秋叶整合包进行出图测试
  • 除了deadline,我们还能用什么驱动开发?
  • Github优质项目推荐 - 第六期
  • 美发店管理新思路:SpringBoot系统开发
  • 在IDEA里用XDebug调试PHP,断点....
  • ①EtherNet/IP转ModbusTCP, EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关
  • Linux——echo-tail-重定向符
  • 【银河麒麟高级服务器操作系统】安全配置基线相关分析全过程及解决方案
  • gitee开源商城diygw-mall
  • leetcode hot100_part03_滑动窗口
  • 【VScode】如何使用详细步骤【笔记】、配置 C / C ++【笔记】
  • OpenStack系列第二篇:深入浅出了解OpenStack架构与优劣势
  • Web安全 - 跨站点请求伪造CSRF(Cross Site Request Forgery)