小白Mac C/C++ for Visual Studio Code配置

小白Mac C/C++ for Visual Studio Code配置

一、 VS Code安装

VS Code官网下载地址

(下载完成后是英文的,自己在插件管理里面下载个语言包)
在这里插入图片描述

  • C/C++ for Visual Studio Code (C/C++环境支持)
  • C/C++ Clang Command Adapter (C/C++代码提示)
  • Code Runner (多语言代码一键运行)
  • Markdown Preview Enhanced (markdown文档实时预览,效果很棒)
  • Markdown-TOC (一键生成markdown文档目录)
  • Chinese (Simplified) Language Pack for Visual Studio Code(适用于 VS Code 的中文(简体)语言包)

有了这几个插件,VS code软件安装算是完成

二、C++环境配置前的准备

在配置环境之前先检查一下机器上都安装了什么C++编译器,通过以下两条命令在终端可以查看是否安装了g++/clang编译器,如果都安装了结果如下图所示

g++ --version
clang++ --version

在这里插入图片描述

在这里插入图片描述

要不然你的程序运行的时候会报错

 "message": "检测到 #include 错误。请更新 includePath。已为此翻译单元(/src...)禁用波形曲线。",

原因:之前可能是依赖Command Line Tools for Xcode自动配置的,Xcode卸载或系统更新后导致头文件搜索路径缺失。

怎么解决呢
此时需要重新安装一下xcode-select

1、自动安装

终端输入 xcode-select –install

重新安装xcode-select

如果提示网络问题无法正常安装可手动安装

2、手动安装

https://developer.apple.com/download/more/

用你的Apple ID登陆 (用手机号当用户名的用户可能没有权限,需要使用邮箱)

搜索Command Line tools for Xcode …

如果系统版本比较老需要往后翻找一下对应的系统

LZ的型号现在是 MacOS Catalina 10.15.7 (19H2), 已测试Command Line tools for
Xcode 12 Sep 17,2020可用

下载安装包,正常安装

三、C++环境配置

那么,前期准备工作完成后进入具体的配置阶段。首先在目录下新建一个文件夹作为工程目录,然后在VSCode中打开该文件夹。在里面新建一个cpp文件命名为main.cpp。随意写点程序在里面。

在这里插入图片描述

#include <iostream>
using namespace std;

int main()
{
    int result;
    int a = 2;
    int b = 3;
    result = a + b;
    cout << result << endl;
    return 0;
}

三个配置文件

c_cpp_properties.json

快捷键shift+command+p 打开C/Cpp: Edit configurations,其会自动生成c_cpp_properties.json,该文件主要是方便添加其他路径的头文件以及一些代码定位功能。但是小白如我现在还用不到这些功能,所以该文件自动生成之后,如果只是简单的使用,暂时不需要修改。

{
    "configurations": [
        {
            "name": "Mac",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "macFrameworkPath": [
                "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks"
            ],
            "compilerPath": "/usr/bin/clang",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "clang-x64"
        }
    ],
    "version": 4
}

参数的简单说明

  • “includePath”:后期需要添加的额外头文件路径
  • “compilerPath”: 编译器所在的文件路径

如果在运行时报错如

cpp "message": "检测到 #include 错误。请更新
includePath。已为此翻译单元(/src...)禁用波形曲线。",

解决

第一步:

在Mac终端中输入命令: gcc -v -E -x c++ - 找到并复制6个路径. (黏贴时应删去framework directory)
在这里插入图片描述
如果终端不返回这几个路径,那么请参考前面二、C++环境配置前的准备,重新安装一下xcode-select

第二步:

在c_cpp_properties.json中,找到"includePath",黏贴之前复制的路径。 格式是 “路径1”,“路径2”…

  • 删除最后一个路径后的(framework directory)
    在这里插入图片描述
    注:引号内每个路径前是没有空格的,找不到路径时记得删一下空格
    我的配置是这样的
    "configurations": [
        {
            "name": "Mac",
            "includePath": [
                "${workspaceFolder}/**",
                "/usr/local/include",
                "/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1",
                "/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include",
                "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include",
                "/Library/Developer/CommandLineTools/usr/include",
                "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks"
                
            ],
            "defines": [],
            "macFrameworkPath": [
                "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks"
            ],
            "compilerPath": "/usr/bin/clang",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "clang-x64"
        }
    ],
    "version": 4 }

tasks.json

这个文件的作用是编译C/C++源码。首先快捷键shift+command+p 打开Tasks: Configure Tasks,
在这里插入图片描述
选择使用模版创建,英文版是 Create tasks.json file from templates,
在这里插入图片描述
然后会出现一个列表,选择others,会自动生成一个tasks.json文件
在这里插入图片描述

这个配置文件默认是长这个样子的:
在这里插入图片描述
我的配置是这个

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "work.cpp",
            "type": "shell",
            "command": "g++",
            "args": [
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}.out",
                "-g"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}
  • 参数的简单说明

  • “label”:任务的名称

  • “type”:任务的类型,有两种(shell/process),shell的意思相当于先打

  • 开shell再输入命令,process是直接运行命令

  • “command”:实际执行的命令

  • “args”:在这里可以设置一些需要的参数,比如说这里我设置的四个参数中,

  • “-o”,表示指定输出文件名,如果不加该参数则默认Windows下输出a.exe,Linux/MAC下默认a.out,紧接着的一行即为指定的输出文件名

  • “-g”,C/C++调试必备参数

更加详细的解释见VSCode官方文档关于tasks.json的说明
官方文档中还给出了GitHub中的tasks.json模版

launch.json

然后点击侧边栏的Debug按钮,点击设置图标,便会提示你选择环境,点击创建launch.json文件。
在这里插入图片描述
选择C++那一项
在这里插入图片描述
来个特写
在这里插入图片描述
选择默认配置
在这里插入图片描述
此时VSCode会在你的工程目录下自动新建一个.vscode的文件夹,并新建了一个launch.json的文件,这里需要对生成的文件进行一些小改动。本人配置如下:
在这里插入图片描述

launch.json

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(lldb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "lldb"
        }
    ]
}

参数的简单说明

  • “name”:配置名称,将会在启动配置的下拉菜单中显示
  • “type”:配置类型
  • “request”:请求配置类型,可以为launch(启动)或attach(附加)
  • “program”:进行调试的程序的路径
  • “stopAtEntry”:若设置为true时程序将暂停在程序入口处
  • “cwd”:当前调试所在目录
  • “externalConsole”:调试时是否显示控制台窗口,设置为true即是显示控制台

更加详细的解释见Github中关于launch.json文件的说明

上面的步骤全部完成之后,首先切换到min.cpp,快捷键command+shift+b对源文件进行编译,编译成功之后,我们便可以愉快地调试啦。
调试快捷键是F5
在这里插入图片描述

编译成功后会生成一个XXX.out文件
在这里插入图片描述


版权声明:本文为qq_34980490原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。