MacOS 下使用vscode+clang配置环境并支持c++17标准

本文指导如何在MacOS上配置VSCode和Clang++,解决因版本问题导致的C++17语法错误,包括检查版本、安装插件、设置tasks.json和调整C++标准。

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

最近使用MacOS来完成闫令琪老师的games101课后作业,发现编译器一直提示语法错误,例如无法识别constexper关键字等错误。

在我的win10+vscode+mingw环境下却没有出现语法报错,所以断定是clang++配置的问题。

0.安装vscode和clang(本文略去)

1.首先通过终端来检查mac中clang的版本号,终端下输入:clang --version

目前终端中显示的clang版本是12.0.0。根据clang官方网站上显示对C++标准的支持如下:

可以根据这个表来判断自己电脑中clang支持哪个C++标准。

2.在vscode中安装下面的2个插件:

3.回到自己的c++代码中,选择Terminal->Configure Default Build Task

然后选择C/C++:clang++生成活动文件:

随后会打开一个tasks.json文件,根据vscode官方网站上对clang的安装及配置教程(https://code.visualstudio.com/docs/cpp/config-clang-mac),将内容替换为官方文档的内容:

{
  "version": "2.0.0",
  "tasks": [
    {
      "type": "shell",
      "label": "clang++ build active file",
      "command": "/usr/bin/clang++",
      "args": [
        "-std=c++17",
        "-stdlib=libc++",
        "-g",
        "${file}",
        "-o",
        "${fileDirname}/${fileBasenameNoExtension}"
      ],
      "options": {
        "cwd": "${workspaceFolder}"
      },
      "problemMatcher": ["$gcc"],
      "group": {
        "kind": "build",
        "isDefault": true
      }
    }
  ]
}

保存以后回到自己的c++代码中,该代码是game101中homework1的代码框架(注:games101课程环境还需要正确配置eigen和opencv库,这里略去)

但是此时可以发现,编译器仍然报语法错误,第一个错误就是无法识别constexpr(该关键字是在c++11标准提出),所以我们可以得出目前clang仅仅只是c++98标准。

4.此时返回vscode的插件页面,选中已安装的插件C/C++ Clang Command Adapter,在右侧点击配置按钮(红框的齿轮),然后选择Extension Settings.

在随后打开页面中找到Clang:Cxxflags,可以看出这个参数是对c++标准的支持,点击Add item

 

在随后打开的参数配置中输入:-std=c++17     (注:不加任何额外符号),并点击ok

 

5.此时再次回到你的cpp文件中,你就可以看到原先的语法错误已经消失,编译器已经可以正确识别constexpr关键字。至此你已经可以愉快的编写c++17标准的代码啦! 

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值