【VS Code】c++环境配置 && .vscode文件 && Code Runner的exe文件指定生成位置 && c++未定义标识符问题
因为一些奇奇怪怪的问题重装了系统,所以重新配置了vscode,上次配置vscode时由于没有用过,所以环境配置一头雾水,甚至还有些历史遗留问题,一直都是在凑活着用,这次刚好重新开始。
1.vscode下载安装
将“通过code 打开“操作添加到windows资源管理器文件上下文菜单
- 勾选上,可以对文件,目录点击鼠标右键,选择使用 VScode 打开。
将code注册为受支持的文件类型的编辑器
- 说明:默认使用 VScode 打开诸如 txt,py 等文本类型的文件,一般建议不勾选。
安装之后,可以选择安装使用“Chinese”中文简体插件
2.下载安装g++
https://github.com/niXman/mingw-builds-binaries/releases/tag/12.2.0-rt_v10-rev0
github上有mingw-w64gcc 12.2.2
我下载了x86_64-12.2.0-release-posix-sjlj-rt_v10-rev0.7z
解压缩,把mingw64文件夹直接放到了c盘根目录
C:\mingw64
windows中搜索 “编辑系统环境变量”
在用户变量中-path下如下添加
注意路径是自己的
之后在Win+r cmd中输入,检查一下
g++ --version
3.安装拓展
c/c++ 和Code Runner,以及vscode-icons
其中对于Code Runner,ctrl+, 在设置中把Code-runner的 Run In Termial勾选上,之后ctrl+alt+N或者右键选择RunCode 输出在终端里
4. .vscode配置
首先在想要存代码的位置建立文件夹,作为之后c/c++代码存放位置
然后进入VSCode,点击Open Folder或者点击左上角File -> Open Folder,然后打开刚刚建的文件夹,选择信任父级文件夹
点击这个图标新建一个文件夹,命名为.vscode(注意必须是这个名字!)
之后在.vscode目录下建立三个文件
c_cpp_properties.json
launch.json
tasks.json
c_cpp_properties.json内容如下
{ "configurations": [ { "name": "Win64", "includePath": ["${workspaceFolder}/**"], "defines": ["_DEBUG", "UNICODE", "_UNICODE"], "windowsSdkVersion": "10.0.18362.0", "compilerPath": "C:/mingw64/bin/gcc.exe", "cStandard": "c17", "cppStandard": "c++17", "intelliSenseMode": "gcc-x64" } ], "version": 4 }
launch.json内容如下
{ "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示 "type": "cppdbg", // 配置类型,这里只能为cppdbg "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加) "program": "${workspaceFolder}/build/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径 "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可 "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false "cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录 "environment": [], "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台 "MIMode": "gdb", "miDebuggerPath": "C:/mingw64/bin/gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应 "preLaunchTask": "g++.exe build active file", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] }
tasks.json内容如下
{ "version": "2.0.0", "tasks": [ { "type": "cppbuild", "label": "g++.exe build active file", "command": "C:\\mingw64\\bin\\g++.exe", "args": [ "-fdiagnostics-color=always", "-g", "${file}", "-o", "${workspaceFolder}/build/${fileBasenameNoExtension}.exe" ], "options": { "cwd": "C:\\mingw64\\bin" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "编译器: C:\\mingw64\\bin\\g++.exe" }, ] }
5. Code Runner的exe文件指定生成位置
在上面launch.json与tasks.json中,有如下语句
"program": "${workspaceFolder}/build/${fileBasenameNoExtension}.exe",
"${workspaceFolder}/build/${fileBasenameNoExtension}.exe"
build文件夹在我们最初建立的c++代码库文件夹之下
之后,ctrl+, 进入设置,搜索code runner 选择Code-runner的某项,在setting .json中编辑
将
"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
替换为
"c": "cd $dir && gcc $fileName -o $workspaceRoot/build/$fileNameWithoutExt && $workspaceRoot/build/$fileNameWithoutExt",
将
"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
替换为
"cpp": "cd $dir && g++ $fileName -o $workspaceRoot/build/$fileNameWithoutExt && $workspaceRoot/build/$fileNameWithoutExt",
最终,新建hellword.cpp
#include <iostream> #include <vector> #include <string> using namespace std; int main(int argc, char const *argv[]) { cout << "hello 世界" << endl; system("pause"); return 0; }
ctrl+alt+N,或者邮件Run Code,或者右上小三角旁的小三角里的RunCode运行,在终端中输出,同时在build中生成exe
ps.连续Run会间次有错误提示
d : 无法将“d”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
因为运行了 system("pause"); 只有按任意键继续之后再Run才是正确的。
中文
ctrl+, 搜索在Files:Encoding中,选择GBK
ctrl+, 在设置中搜索“guess”,在Auto Guess Encoding中启用猜测字符集编码
未定义标识符 string
在.vscode下的setting.json中添加语句
"C_Cpp.intelliSenseEngine": "Tag Parser"
或者ctrl+, 在设置中搜索C_Cpp.intelliSenseEngine,由“default”改为“Tag Parser”
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本