MAC VSCODE g++编译器无法编译C++11语法的 解决办法(CodeRunner版本)

如果你是使用的 codeRunner 这个插件,就是这个按钮

coderunner的原理大致是:先判断你这是什么语言,然后有一个 code-runner.executorMap 来对应各个语言是用什么执行语句

我发现,我修改之前(无法执行C++11语法的原因是,coderunner他的执行语句始终没有指定 std=11),执行的语句如下图所示啊:

于是我很诧异,我自己用终端手敲了一遍 g++ main.cpp -std=c++11 就不会提示我语法出错,那就说明,是这个语句没有指定C++版本为11导致的编译错误

OK,那么,解决办法也很简单,在coderunner的设置中把对应的编译语句加上std=c++11就成了

(1)找到coderunner的配置文件(.josn文件):

建议就别去设置中找了,很费劲,直接在扩展中查找到coderunner :

点击齿轮小图标 ⚙ :进入设置:

进入这个界面:点击在 settings.json 中编辑:

进到json 得等一下,因为json他 内容比较多,需要加载一会儿

进去后找到这以行,就是code runner 编译 C++代码的时候执行的命令:

注释掉的是原来的语句,我加上了 -std=c++11 这个编译指令参数:

复制代码
"cpp": "cd $dir && g++ $fileName -std=c++11 -o $fileNameWithoutExt && $dir$fileNameWithoutExt",

然后,重启VSCODE(不重启理论上也行,但还是有仪式感的重启一下吧)

再次编译,就OK了

给一段用到C++11语法的代码作为测试样例吧:

就是 vector的列表初始化语法:

cpp 复制代码
#include<iostream>
#include<vector>

using namespace std;

int main()
{
    vector<int>vec = {1,2,3,4};
    cout<<"dscchu"<<endl;
    cout<<vec[0]<<endl;

}

执行的时候终端会输出:

相关推荐
bulucc1 小时前
vim 快捷操作
linux·编辑器·vim
Aspect of twilight3 小时前
vscode python debug方式
ide·vscode·python·debug
Aevget3 小时前
.NET跨平台开发工具Rider v2025.3发布——支持.NET 10
ide·.net·开发工具·rider·rider v2025.3
啃火龙果的兔子5 小时前
vscode中可以使用的免费的AI编程工具有哪些
ide·vscode·ai编程
littlezls5 小时前
在VSCode中运行Python脚本文件时如何传参
vscode·python
宋明炜6 小时前
VSCode + MSYS2 配置 C 语言开发环境(详细步骤)
c语言·ide·vscode
yscript6 小时前
GPU分配BUG: Duplicate GPU detected : rank 1 and rank 0 both on CUDA device d5000
linux·运维·服务器·vscode·bug
超超~~7 小时前
Notepad(文本编辑器)v3.6.30绿色官方版
编辑器·notepad++
shhpeng7 小时前
Visual Studio Code 下 go 开发环境搭建
ide·vscode·编辑器
MounRiver_Studio7 小时前
RISC-V IDE MRS2使用笔记(七):书签与笔记功能
ide·嵌入式·risc-v