【MAC】vscode C++环境配置学习以及问题解决

本文详细记录了Mac用户从重新配置VSCode,安装homebrew和opencv,到解决编译器问题和配置多个json文件的过程,包括终端输入问题、vector初始化、多文件编译等,旨在帮助其他开发者避免配置困扰。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

我的电脑是macos 10.15.6,之前一直用的是xcode(不得不说,Xcode虽然占内存但是真香!),由于之后需要用到设计编程图形化界面Qt,所以下载vscode与Qt相配。

之前看了大量教程配置vscode,但最后都配得一团糟,最近正好有空闲的时间,所以重新下载了vscode重新配置。

过程实在是太艰辛了,花了我一整天的时间,我把过程及遇到的所有坑都吐血整理如下,希望对你有些帮助。

准备

  • 下载vscode
  • 由于我的电脑上之前已经安装过xcode,所以一些编译工具(如g++,gcc,clang)都具备,若没有需要提前安装。
    不怕占内存的话建议直接先安装xcode,一键解决所有编译器问题。
  • 下载homebrew,利用homebrew安装opencv(不确定homebrew在vscode配环境中的作用,如果你没有下载homebrew,可能会遇到一些其他问题),具体homebrew的下载方法也写在后面了。
  • 可以尝试直接跳到配置文件部分,前面的homebrew和opencv可以略过不看,遇到问题再来看。
  • 【不重要】我习惯直接从文件终端中打开ide,所以设置了code .命令的访问方法,具体写在最后。
  • 由于之前下载过vscode,所以一些基本的C++插件已经安装,如C/C++, Code Runner等,若未安装需要先安装

一.(Mac)homebrew安装

用这位老哥的一行代码解决:
Homebrew国内如何自动安装(国内地址)(Mac & Linux)
效果如下:
在这里插入图片描述

  • 关于为什么要下载homebrew:
    • homebrew是mac内部一个管理各种包的软件
    • 有待学习

二. 利用homebrew安装opencv

  • 有三个步骤:
1. brew install wget
2. brew install cmake
3. brew install opencv
  • 检查安装结果
brew info opencv
  • 按照教程里的步骤,检查结果应该如下:
    在这里插入图片描述
    但是我自己在执行第三步的时候,出现了错误提示:
    在这里插入图片描述输入brew info opencv后,提示有一部分未安装成功:
    在这里插入图片描述
    单独对打红叉的进行brew install仍然有错误提示,暂时还未找到解决办法,所以暂且搁置,继续配置环境。

配置完成后发现此处错误不影响后续配置。

三. vscode json文件配置

  • 我用的是clang, 全程参考官网教程,官网上有三个json文件,直接复制即可
  • mac按[command+shift+p]可以调出控制面板

四. 遇到的问题

感觉Mac配置vscode会遇到的问题是个玄学,网上的各种解决办法是否适用于自己也是个玄学。所以我此处只贴出我遇到的问题以及最终的解决办法(均已解决),和我最终的四个配置文件。

1. 终端无法输入

这个问题在官网有解释:
请添加图片描述

简单来说

  1. 将launch.json文件中的"externalConsole":false一行代码中的false改为true即可,这可以解决一部分人的问题。
  2. 若还未解决,继续按照官网教程,在tasks.json中加入如下代码:
{
            "label": "Open Terminal",
            "type": "shell",
            "command": "osascript -e 'tell application \"Terminal\"\ndo script \"echo hello\"\nend tell'",
            "problemMatcher": []
}

之后在Terminal > Run Task … 中选择 Open Terminal,点击后不会跳出什么提示,但是再次运行时就会出现独立终端了。

2. vector容器不可以直接用{}初始化

在按照官网中给出的代码调试时,会出现如下错误提示:

在这里插入图片描述

语法没有错,明显是编译器的编译标准太老了,在近几年的C++新标准(c++17)新出之后,就已经可以对vector定义时进行初始化。

看了网上的解决办法:

  1. 若使用了Code Runner插件,可以尝试修改一下code runner插件的指令模板

依次找到:文件>首选项>设置>用户设置>扩展>run code configurate>Executor Map,然后点击在settings.json中编辑

在这里插入图片描述
找到cpp那一行,修改代码为cd $dir && clang++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt,若使用的是g++编译器,就将命令中的clang++改为g++,此行代码的具体功能可以参考文档.

  1. 我没有使用到Code Runner,所以使用另一种办法,在task.json文件中,加入此行代码:
    请添加图片描述
    在launch.json文件中也作相应修改:
    请添加图片描述
    问题得到解决。

3. 无法执行新保存的cpp文件

新编辑cpp之后进行保存,但是每次执行的仍然是最初的cpp,并有如下错误提示:
在这里插入图片描述

解决办法是在launch.json中加入"preLaunchTask":"Build"此行代码

请添加图片描述

注意preLaunchTask与tasks.json中的label相对应,所以在tasks.json中也要作相应修改:

请添加图片描述

问题得到解决。

4. 无法多文件编译

多文件编译时会出现ld错误提示。

解决办法:只需要将tasks.json中的参数修改一下即可:
请添加图片描述
若单文件编译就使用第一行参数,多文件编译就使用第二行参数。问题解决。

五. 配置文件

最后,贴出我的四个配置文件。

1. 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
}

2.launch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "C/C++: clang++ build and debug active file",
      "type": "cppdbg",
      "request": "launch",
      "program": "${fileDirname}/${fileBasenameNoExtension}",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": true,
      "MIMode": "lldb",
      "preLaunchTask": "Build"                                            
    }, 
  ]
}


3.tasks.json

{
    "tasks": [
        {
            "type": "cppbuild",
            "label":"Build",
           // "label": "C/C++: clang++ build active file",
            "command": "/usr/bin/clang++",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                //以下二选一
                //"${file}",//用于单文件编译
                "${fileDirname}/*.cpp",//用于多文件编译
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}",
                "-std=c++17"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Task generated by Debugger."
        },
        {
            "label": "Open Terminal",
            "type": "shell",
            "command": "osascript -e 'tell application \"Terminal\"\ndo script \"echo hello\"\nend tell'",
            "problemMatcher": []
          }
          
    ],
    "version": "2.0.0"
}

4.settings.json

请添加图片描述

六. 快捷命令打开vscode

  1. 确保将Visual Studio Code应用程序拖动到-Applications-文件夹中
  2. 接下来,打开Visual Studio代码
    通过(⇧⌘P)打开命令面板,然后键入以找到Shell命令:shell command

在这里插入图片描述

  1. 执行命令后,重新启动终端以使新的$ PATH值生效。

  2. 然后,在相应文件夹的终端中输入 code . 即可直接用vscode打开文件夹了。

### 配置 VSCode 进行 C++ 开发 #### 安装必要的软件包 为了在 Mac 上使用 Visual Studio Code (VSCode) 进行 C++ 开发,需要先安装一些基础组件。由于 VSCode 本身并不提供编译器功能[^1],因此需单独安装 GCC 或 LLVM/Clang 编译器。 可以通过 Homebrew 来简化这一过程: ```bash brew install gcc ``` 这会安装 GNU Compiler Collection, 包含了 g++ 编译器用于处理 C++ 文件[^2]。 #### 安装并配置 VSCode 扩展 接着,在 VSCode 中添加官方推荐的 C/C++ 扩展来增强 IDE 功能。打开命令面板 (`Cmd+Shift+P`) 并输入 "Install Extensions", 接着搜索 `C/C++` 插件由 Microsoft 提供,并点击安装按钮。 此插件提供了 IntelliSense 支持、代码浏览以及调试等功能,极大地提高了开发效率。 #### 设置工作区文件夹结构与任务定义 创建一个新的项目目录并将该路径加入到 VSCode 的工作区内。之后可以在 `.vscode/tasks.json` 文件内指定构建任务以便一键编译程序: ```json { "version": "2.0.0", "tasks": [ { "label": "build hello world", "type": "shell", "command": "/usr/local/bin/g++-9", "args": [ "-g", "${workspaceFolder}/main.cpp", "-o", "${workspaceFolder}/bin/main" ], "group": { "kind": "build", "isDefault": true }, "problemMatcher": ["$gcc"], "detail": "Generated task to build a simple cpp file." } ] } ``` 上述 JSON 片段展示了如何通过自定义的任务来调用外部编译指令完成项目的编译操作。 #### 调试设置 为了让开发者能够更方便地测试和排查错误,还需要建立相应的 launch configuration 。同样位于`.vscode/launch.json`, 添加如下内容以启动 GDB/Lldb 调试会话 : ```json { "version": "0.2.0", "configurations": [ { "name": "(lldb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/bin/main", "args": [], "stopAtEntry": false, "cwd": "${fileDirname}", "environment": [], "externalConsole": false, "MIMode": "lldb" } ] } ``` 这段配置允许用户直接从编辑器内部发起本地应用程序的执行流程监控,极大地方便了日常编码中的问题定位。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值