vscode 加上c++11编译选项

问题描述

vscode 运行C++11代码出现此错误
error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
提示我们需要在编译命令中加一行选项,加入c++11编译选项

解决方法

我们点击右上角小齿轮,进入到task.json配置文件中,在args中添加配置,如下图所示

"-std=c++11"

在这里插入图片描述

在Ubuntu上使用VSCode运行C++程序时遇到结果乱码的问题,通常有几种常见原因及解决办法: ### 1. 编码设置问题 确保文件编码以及终端显示使用的编码一致。最常用的是UTF-8编码。 **解决方案:** - **检查源代码文件的编码**:确认项目中的所有`.cpp`、`.h`等文件都保存为UTF-8格式。 - 可以通过VSCode右下角的状态栏查看当前文档的编码,并点击更改它到"UTF-8"。 - **配置VSCode终端默认编码**:如果是在集成终端里直接编译运行,则需要保证终端也支持并设置了正确的字符集。 - 打开 VS Code 设置 (`Ctrl+,`) ,搜索 `terminal.integrated.shellArgs.linux` - 添加 `-u UTF-8` 参数例如对于bash可以添加如下内容 `"terminal.integrated.shellArgs.linux": ["-u", "UTF-8"]` ### 2. 编译选项未指定标准库版本或其他必要参数 如果你正在编写包含特定语言特性的现代 C++ 程序 (如C++11及以上),则应该告知 g++ 使用相应标准。 **解决方案:** ```sh # 修改Makefile或命令行加上std=c++17(或者其他你需要的标准) g++ main.cpp -o myprogram -std=c++17 或者在vscode的任务配置中加入对应的args: { "version": "2.0.0", "tasks": [ { "label": "build hello world", "type": "shell", "command": "/usr/bin/g++", "args": [ "-g", "${workspaceFolder}/main.cpp", "-o", "${workspaceFolder}/myprogram", "-std=c++17" ], // ...其他配置项... } ] } ``` ### 3. 输出流缓冲区同步问题 有时当混合了 C 风格 I/O 和 C++ 标准输入输出时会出现这种情况。因为两者有不同的缓冲机制,默认情况下它们不会自动同步。 **解决方案:** 可以在主函数开始处插入下面这句来启用同步: ```cpp #include <iostream> // 其他头文件... int main() { std::ios::sync_with_stdio(false); // 如果不需要同步就关闭以提高效率 // 或者 std::cout.sync_with_stdio(true); return 0; } ``` 以上措施应能有效改善大多数关于中文字符显示错误的情况;然而,若仍然存在问题,请提供更详细的环境信息以便进一步诊断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值