【操作与配置】VSCode配置C/C++及远程开发

基础安装

MINGW

  • 进入网站下载MinGWMinGW Distro - nuwen.net

  • 运行安装包,使其安装在你指定的位置

  • 将MinGW的bin目录添加到系统的环境变量PATH

    • 使用 win+x 选择进入“系统”

    • 点击“高级系统设置”

    • 在“系统属性:高级”窗口中,点击“环境变量”按钮

    • 在“环境变量”窗口中,在“系统变量”中点击Path

    • 在“编辑环境变量”窗口中,点击“新建”,然后输入MinGW的bin目录路径,例如C:\MinGW\bin

    • 点击“确定”保存更改。

  • 检测环境是否配置成功

    • 打开 win+r ,输入 cmd 打开命令行窗口

    • 输入gcc -v若出现相关信息则配置成功

VSCode

  • 官网下载:Visual Studio Code - Code Editing. Redefined

  • 点击左侧的扩展图标(或按Ctrl+Shift+X)进入插件市场,在搜索栏中输入下文并安装拓展:

    • Chinese:VSCode汉化

    • C/C++:智能提示,调试,代码打包

  • 重启VSCode使插件生效

VSCode的Json配置

tasks.json

tasks.json 文件定义了 VSCode 中的构建任务。你可以配置 VSCode 在构建(编译)你的项目时应执行的操作。例如,使用 g++ 编译器编译 C++ 代码。

  • 点击左上角...:终端:配置任务

  • 点击:C/C++:g++.exe 生成活动文件

  • 在.vscode文件夹自动创建了tasks.json,下面包含了完整解释:

    {
    	// 任务配置文件的版本
    	"version": "2.0.0",
    	
    	// 任务数组
    	"tasks": [
    		{
    			// 任务类型
    			// 表示这是一个用于C++构建的任务。
    			"type": "cppbuild",
    			
    			// 任务标签
    			// 在任务运行时显示的标签。
    			"label": "C/C++: g++.exe 生成活动文件",
    			
    			// 要运行的命令
    			// 编译时要调用的g++编译器的路径。
    			"command": "D:\\CPPcode\\MinGW\\bin\\g++.exe",
    			
    			// 命令行参数
    			// 编译时传递给g++的参数。
    			"args": [
    				// 使诊断信息总是彩色显示
    				"-fdiagnostics-color=always",
    				
    				// 生成调试信息
    				"-g",
    				
    				// 当前文件
    				"${file}",
    				
    				// 输出文件路径和名称
    				"-o",
    				"${fileDirname}\\${fileBasenameNoExtension}.exe"
    			],
    			
    			// 命令选项
    			// 设置命令运行时的选项。
    			"options": {
    				// 当前工作目录
    				// 编译时的当前工作目录。
    				"cwd": "${fileDirname}"
    			},
    			
    			// 问题匹配器
    			// 用于解析编译器输出中的错误和警告。
    			"problemMatcher": [
    				"$gcc"
    			],
    			
    			// 任务组
    			// 将任务归类到“build”组中。
    			"group": "build",
    			
    			// 详细信息
    			// 任务的详细描述信息。
    			"detail": "编译器: D:\\CPPcode\\MinGW\\bin\\g++.exe"
    		}
    	]
    }
    

launch.json

launch.json 文件定义了调试配置。你可以配置 VSCode 如何启动和调试你的应用程序,包括设置调试器路径、启动参数等。

  • 点击左上角...:运行:添加配置

  • 点击:C/C++(GDB/LLDB)

  • 点击添加配置:{}C/C++: (gdb) Windows 上的 Bash 启动

  • 在.vscode文件夹自动创建了launch.json,下面包含了完整解释:

    {
        // 版本信息
        // 这个文件的版本。用于定义调试器配置文件的版本号。
        "version": "0.2.0",
        
        // 调试器配置数组
        "configurations": [{
            // 配置名称
            // 在VS Code中显示的调试配置名称。
            "name": "(gdb) Windows 上的 Bash 启动",
            
            // 调试器类型
            // 表明这是一个用于C++的调试配置。
            "type": "cppdbg",
            
            // 请求类型
            // 表明这是一个启动调试请求。
            "request": "launch",
            
            // 可执行程序路径
            // 要调试的程序的路径,可以使用变量。
            "program": "输入程序名称,例如 ${workspaceFolder}/${fileBasenameNoExtension}.exe",
            
            // 命令行参数
            // 调试时传递给程序的命令行参数。
            "args": [],
            
            // 是否在程序入口处停止
            // 如果为true,调试器将在程序入口处停止。
            "stopAtEntry": false,
            
            // 当前工作目录
            // 调试时的当前工作目录。
            "cwd": "${fileDirname}",
            
            // 环境变量
            // 在调试过程中要设置的环境变量。
            "environment": [],
            
            // 是否使用外部控制台
            // 如果为true,调试过程中会打开一个外部控制台。
            "externalConsole": false,
            
            // 管道传输设置
            // 配置如何通过管道传输调试命令。
            "pipeTransport": {
                // 调试器路径
                // 在Bash中gdb的路径。
                "debuggerPath": "/usr/bin/gdb",
                
                // 管道程序
                // 用于启动Bash的程序路径。
                "pipeProgram": "${env:windir}\\system32\\bash.exe",
                
                // 管道参数
                // 传递给Bash的参数。
                "pipeArgs": ["-c"],
                
                // 管道当前工作目录
                // 运行Bash的当前工作目录。
                "pipeCwd": ""
            },
            
            // 设置命令
            // 调试器启动时要运行的一系列命令。
            "setupCommands": [
                {
                    // 命令描述
                    // 该命令的简短描述。
                    "description": "为 gdb 启用整齐打印",
                    
                    // 要执行的命令
                    // gdb 命令文本。
                    "text": "-enable-pretty-printing",
                    
                    // 忽略失败
                    // 如果命令失败是否继续。
                    "ignoreFailures": true
                },
                {
                    // 命令描述
                    // 该命令的简短描述。
                    "description": "将反汇编风格设置为 Intel",
                    
                    // 要执行的命令
                    // gdb 命令文本。
                    "text": "-gdb-set disassembly-flavor intel",
                    
                    // 忽略失败
                    // 如果命令失败是否继续。
                    "ignoreFailures": true
                }
            ]
        }]
    }
    

c_cpp_properties.json

c_cpp_properties.json是一个配置文件,用于指定C/C++项目的编译器和头文件路径等相关设置。

  • Ctrl+Shift+P调出命令面板

  • 输入C/C++: Edit Configurations (UI)并选择它

    使用此编辑器编辑在基础c_cpp_properties.json文件中定义的 IntelliSense 设置。在此编辑器中所做的更改仅适用于所选的配置。要一次编辑多个配置,请转到 c_cpp_properties.json

  • 在.vscode文件夹自动创建了c_cpp_properties.json,下面包含了完整解释:

    {
        // 配置数组
        // 包含所有代码配置的数组。
        "configurations": [
            {
                // 配置名称
                // 此配置的名称为“Win32”。
                "name": "Win32",
                
                // 包含路径
                // 编译时要包含的路径,可以使用通配符。
                "includePath": [
                    "${workspaceFolder}/**"
                ],
                
                // 预处理器定义
                // 编译时定义的预处理器宏。
                "defines": [
                    "_DEBUG",    // 调试模式
                    "UNICODE",   // 使用 Unicode 字符集
                    "_UNICODE"   // 使用 Unicode 字符集
                ],
                
                // 编译器路径
                // 指定编译器的路径。
                "compilerPath": "D:\\CPPcode\\MinGW\\bin\\gcc.exe",
                
                // C标准
                // 指定要使用的C语言标准。
                "cStandard": "c17",
                
                // C++标准
                // 指定要使用的C++语言标准。
                "cppStandard": "gnu++17",
                
                // IntelliSense 模式
                // 指定IntelliSense的模式。
                "intelliSenseMode": "windows-gcc-x64"
            }
        ],
        
        // 配置文件版本
        // 此配置文件的版本。
        "version": 4
    }
    

服务器G++环境配置

在乌班图云服务器上安装 C++ 开发环境,包括编译器(如 g++)和调试器(如 gdb):

  • 更新系统软件包列表:

    sudo apt update
    
  • 安装 C++ 编译器和调试器:

    sudo apt install g++ gdb
    

配置 VSCode 远程开发环境

在本地的 VSCode 中安装远程开发插件:Remote - SSH

新建链接,输入用户名及ip地址

ssh  username@ip

出现问题尝试清理 C:\Users\username\.ssh 下的所有文件内容

在你输入密码登录之后,VS Code 服务器会自动安装到 /root/.vscode-server 目录。

**如果你需要进行 C++ 的开发和调试:**在VSCode中执行与上文相同的操作。

其他设置

代码格式化

  • 打开 VS Code 设置(可以通过 Ctrl + , 快捷键)。

  • 搜索 C_Cpp.clang_format_fallbackStyle 或者 C_Cpp.clang_format_style

  • 修改 C_Cpp.clang_format_fallbackStyle{ BasedOnStyle: Google, IndentWidth: 4, ColumnLimit: 0, AllowShortFunctionsOnASingleLine: All, BreakBeforeBraces: Attach }。下附解释:

    BasedOnStyle: Google:基于 Google 的代码风格。Google 的代码风格强调简洁和一致性,使用 2 个空格缩进,函数定义和控制结构的 { 放在同一行。

    IndentWidth: 4:设置缩进宽度为 4 个空格。尽管 Google 风格通常使用 2 个空格,这里覆盖了默认设置,使用 4 个空格缩进。

    ColumnLimit: 0:将列限制设置为 0,表示没有列限制。通常,Google 风格限制为 80 列或 100 列,这里取消了这一限制,代码行可以任意长度。

    AllowShortFunctionsOnASingleLine: All:允许短函数在一行内定义。这个设置允许所有短函数(包括内联函数)在同一行内定义。

    BreakBeforeBraces: Attach:在 { 前不换行。函数、类、和其他控制结构的 { 放在声明的同一行,而不是另起一行。

终端

在 VS Code 中,你可以通过更改设置来使用不同的终端,而不是默认的 PowerShell。以下是如何更改 VS Code 中的默认终端步骤:

  • 你可以使用快捷键 Ctrl + , 打开设置,或者通过菜单栏选择 File > Preferences > Settings

  • 在设置搜索栏中输入 terminal,找到 Terminal › Integrated › Default Profile

  • 你可以选择你想要的默认终端,如 Command Prompt (cmd), Git Bash, WSL 或者其他已安装的终端。

  • 在设置中,点击 Edit in settings.json,然后在打开的 settings.json 文件中添加或修改如下配置:

{
    "terminal.integrated.defaultProfile.windows": "Command Prompt"
}

变量

这段内容详细解释了在使用某些开发工具(如Visual Studio Code、某些构建系统或脚本工具)时,可能会遇到的几种变量或占位符的含义。这些变量通常用于配置文件中,以便动态地引用工作区、文件或目录的路径,从而增加配置的灵活性和可移植性。下面是对每个变量含义的详细解释:

${workspaceFolder}:表示当前工作区(workspace)文件夹的绝对路径。工作区通常指的是你当前正在开发的项目所在的顶级目录。

${fileDirname}:表示当前打开的文件的目录(文件夹)的绝对路径,但不包括文件名本身。

${workspaceFolder}/**:这不仅仅是一个路径,它还表示一个模式,用于递归搜索当前工作区文件夹及其所有子目录。

${workspaceRootFolderName}:表示当前工作区文件夹的名称(不包括路径)。

${file}:表示当前打开文件的完整路径,包括文件名和后缀名。

${relativeFile}:这通常用于以相对路径形式表示当前打开的文件。不过,根据你提供的解释,它看起来更像是基于当前上下文(可能是当前工作区目录或特定目录)的相对路径。但请注意,具体行为可能取决于使用的工具或环境。

${fileBasename}:表示当前打开的文件名(包括后缀名),但不包括路径。

${fileBasenameNoExtension}:表示当前打开的文件名,但不包括路径和后缀名。

### 如何在 Visual Studio Code 中设置远程 C 和 C++ 编程环境 #### 所需工具和扩展安装 为了支持远程开发,在本地计算机上除了要安装Visual Studio Code之外,还需要安装Remote Development扩展包[^1]。该扩展包包含了三个主要组件:Remote - SSH, Remote - WSL (如果适用), 以及 Remote - Containers。 对于通过SSH连接到远程机器的情况,确保目标Linux服务器已正确设置了SSH服务,并可以从客户端机器访问。另外,还需确认远程主机上已经安装了C/C++编译器(如GCC或Clang),并可以正常工作。 #### 配置步骤 一旦完成了上述准备工作,则可以在VSCode内部按照如下方式操作: - **打开命令面板**:按`Ctrl+Shift+P`(Windows/Linux) 或 `Cmd+Shift+P`(Mac),输入“Remote-SSH: Connect to Host”,选择对应的选项来建立新的SSH会话。 - **首次连接时配置密钥认证**:如果是第一次连接至某台特定的远程主机,可能需要手动完成公私钥交换流程,以便后续无需每次都输入密码即可登录。 - **创建项目目录**:成功登陆后,可以通过终端指令创建工作区文件夹;也可以直接克隆Git仓库作为起点。 - **安装必备软件**:确保远程环境中存在最新版本的build-essential(gcc,g++)套件以及其他依赖项。 - **加载C/C++扩展**:回到本地端的VSCode界面里,点击左侧活动栏中的拓展图标,搜索并安装Microsoft官方提供的C/C++插件,这一步骤同样适用于远程侧执行。 - **编辑launch.jsontasks.json**:这两个JSON格式的任务定义文档位于`.vscode/`子路径下,用于指定调试参数及自定义构建任务。例如,设定gdbserver监听地址、传递给gcc/g++的具体标志位等细节均在此处体现。 ```json // launch.json example snippet for remote debugging via gdbserver { "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch on Remote", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/a.out", // Path relative to workspace root "args": [], "stopAtEntry": false, "cwd": "${fileDirname}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "/usr/bin/gdb", // Absolute path of GDB executable on the server side "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "Build Program" } ] } ``` ```json // tasks.json example snippet for compiling with gcc remotely { "version": "2.0.0", "tasks": [ { "label": "Build Program", "type": "shell", "command": "gcc", "args": [ "-g", "${file}", // Current file being edited "-o", "${fileDirname}/${fileBasenameNoExtension}" ], "group": { "kind": "build", "isDefault": true }, "problemMatcher": ["$gcc"], "detail": "Generated task from GCC compilation command." } ] } ``` 以上就是关于如何在 VSCode 中搭建完整的远程 C/C++ 开发环境的大致介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值