【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”

好文推荐

Vscode修改.exe文件生成位置
vscode配置C/C++环境
VSCode配置C/C++环境

posted @   稻花香里亦江湖  阅读(2144)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示