解决在vsode中使用C++17遇到的问题

解决在vsode中使用C++17遇到的问题

通过 gcc -v 检查 gcc 的版本,要想 vscode 完全使用 C++17 的功能,gcc 的版本至少 gcc7 才行。然而,gcc11 以上的版本才会默认开启 C++17,所以我们需要配置编译器,让编译器用C++17的语法规则编译我们的代码。
vscod本身不是编译器,需要添加配置文件才具备编译 C++ 代码的功能。具体怎么添加配置和设置文件,网上有很多,这里不做介绍。找到配置文件 tasks.json , 在 “args” 参数选项里面添加 -std=c++17 , 这里缺省了这个参数,默认用的是c++14的语法规则。

在这里插入图片描述
到这里,只是把编译器的编译语法改成了 C++17。vscode里面含有 C++ 语法的代码块还是会报语法错误。尽管如此,直接编译运行是可以正常看到结果的。不正常的是,vscode 的默认语法检查规则还是 C++14。还需要把语法检查规则改成 C++17 的才行。
同时按住 shift + Ctrl + p 出现搜索框,在搜索框中输入 C/C++, 选择 “编辑配置文件(JSON)” 下面也有对应的英文版的显示。按下图设置成 “cStandard”: “gnu17”, “cppStandard”: “gnu++17”, 改完后保存,回到 C++17 代码处,错误提示消失。如果想改回 C++14 ,把相应地方的 17 改成 14 就可以了。
在这里插入图片描述

<think>好的,用户想在VS Code中配置OpenGL环境,我需要根据提供的引用内容来整理步骤。首先,引用[1]提到了两种配置选项,用户选择的是VS Code和MinGW,所以应该按照Option 1的流程来指导。 第一步是安装编译器,这里需要MinGW-W64。要确保用户正确安装并配置环境变量,否则后续步骤会出问题。接下来,安装VS Code的C/C++扩展,这是基本操作,用户可能已经了解,但还是要提及。 然后是配置GLFW和GLAD库。引用[1]和引用[2]都提到了需要包含头文件和库文件,用户需要下载预编译的GLFW库,并正确放置include和lib目录。对于GLAD,需要生成对应的文件并添加到项目中,这一步可能需要访问在线服务,用户需要注意选择正确的API版本。 接下来是配置tasks.json和launch.json,这部分可能会让新手感到困惑。需要指导用户如何设置编译命令,链接必要的库如glfw3、opengl32等,同时处理静态库的顺序问题,避免链接错误。引用[2]提到配置环境主要涉及include、lib和dll,所以需要提醒用户将dll文件放到可执行文件目录下。 最后,测试配置是否成功,提供一个简单的OpenGL程序示例,确保窗口能正常显示。如果用户遇到问题,可能需要检查路径是否正确,库是否链接,或者dll是否缺失。此外,引用[3]指出VS适合大型项目,但用户选择的是VS Code,所以需要强调轻量级配置的优势和可能的局限性。 在相关问题部分,考虑到用户可能后续会遇到库管理、调试或项目迁移的问题,应该生成相关的问题,帮助他们进一步学习。同时,确保引用标记正确,比如引用[1]和引用[2]的信息来源。</think>### 如何在 VS Code 中配置 OpenGL 开发环境 #### 步骤 1:安装必要工具 1. **安装 MinGW-W64 编译器** - 下载地址:[MinGW-W64](https://www.mingw-w64.org/) - 选择 `x86_64-posix-seh` 架构版本,安装后添加 `bin` 目录到系统环境变量(例如:`C:\mingw64\bin`)[^1]。 2. **安装 VS Code 扩展** - 安装官方插件 **C/C++**(用于代码提示和调试支持)。 - 可选插件 **CMake Tools**(若需使用 CMake 管理项目)。 --- #### 步骤 2:配置 GLFW 和 GLAD 1. **下载 GLFW 预编译库** - 访问 [GLFW 官网](https://www.glfw.org/),下载 Windows 预编译包(如 `glfw-3.3.8.bin.WIN64.zip`)。 - 解压后,将 `include` 目录和 `lib-mingw-w64` 中的 `libglfw3.a` 文件分别保存到项目目录的 `include/GLFW` 和 `lib` 文件夹中[^2]。 2. **生成 GLAD 文件** - 访问 [GLAD 在线服务](https://glad.dav1d.de/),选择 `gl` 版本(如 OpenGL 4.6),模式设为 `Core`,生成文件后下载。 - 将 `glad.c` 添加到项目源文件,`include` 目录保存到项目 `include/glad` 中。 --- #### 步骤 3:配置 VS Code 编译环境 1. **创建 `tasks.json`** 在 `.vscode` 文件夹中新建 `tasks.json`,配置编译命令: ```json { "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "g++", "args": [ "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}.exe", "-I", "include", "-L", "lib", "-lglfw3", "-lopengl32", "-lgdi32" ], "group": { "kind": "build", "isDefault": true } } ] } ``` - `-I` 指定头文件路径,`-L` 指定库路径,`-l` 链接库文件。 2. **配置 `launch.json`** 用于调试程序: ```json { "version": "0.2.0", "configurations": [ { "name": "C++ Launch", "type": "cppdbg", "request": "launch", "program": "${fileDirname}/${fileBasenameNoExtension}.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "C:/mingw64/bin/gdb.exe" } ] } ``` --- #### 步骤 4:测试代码 创建 `main.cpp`,写入以下代码验证环境: ```cpp #include <glad/glad.h> #include <GLFW/glfw3.h> int main() { glfwInit(); GLFWwindow* window = glfwCreateWindow(800, 600, "OpenGL Test", NULL, NULL); glfwMakeContextCurrent(window); gladLoadGL(); while (!glfwWindowShouldClose(window)) { glClearColor(0.2f, 0.3f, 0.3f, 1.0f); glClear(GL_COLOR_BUFFER_BIT); glfwSwapBuffers(window); glfwPollEvents(); } glfwTerminate(); return 0; } ``` 运行后若显示绿色窗口,则配置成功。 --- #### 常见问题解决 - **链接错误**:检查库文件路径是否正确,确保 `libglfw3.a` 和 `-lopengl32` 顺序正确(静态库需放在依赖它们的文件之后)。 - **GLAD 未加载**:确认 `glad.c` 已添加到编译文件列表。 - **DLL 缺失**:将 `glfw3.dll` 复制到生成的 `.exe` 同级目录。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值