前言
- 本人环境: win10专业工作站版 64位
- VSCode
配置C++环境
下载安装MinGW-w64及环境变量配置
MinGW:可以理解成包含多种编译环境的可*选择安装的其中的部分的软件
下载地址:https://osdn.net/projects/mingw/downloads/68260/mingw-get-setup.exe/
直接弹窗下载即可,下载完按照下面教程安装配置即可。
安装
安装完成后的见面
下载相关文件(重要步骤)
点完Continue后或打开MinGW Installation Manager,
勾选编译器软件
若在安装的时候报“找不到 xxx 库”的错误,可以重新勾选此库和dll文件
选择完后,点击Installation-->applychange,等待安装完就欧克
要是有下载失败失败,重复点点击Installation-->applychange,等待安装完就欧克
配置win10的环境变量
检测是否安装成功:命令提示符中输入 gcc -v ,若显示版本号则说明安装成功
安装VScode
太简单了
在VScode中下载C/C++插件
配置C++在VSCode中
- 创建C++工作区
- 新建一个文件夹(放c++代码文件)
- 在此文件夹中新建.vscode、 launch.json、tasks.json三个文件夹
修改三个.json文件的配置
- c_cpp_properties.json文件
先确认自己的安装路径
gcc -v -E -x c++ -
修改“includePath”和“Path”将图示的几行代替路径即可。
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceRoot}",
"d:/mingw/include/**",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/include/c++",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/include/c++/mingw32",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/include/c++/backward",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/include",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../include",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/include-fixed"
],
"defines": [
"_DEBUG",
"UNICODE",
"__GNUC__=6",
"__cdecl=__attribute__((__cdecl__))"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": "",
"path": [
"${workspaceRoot}",
"d:/mingw/include/**",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/include/c++",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/include/c++/mingw32",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/include/c++/backward",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/include",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../include",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/include-fixed"
]
}
}
],
"version": 4
}
- lauch.json 文件配置
根据自己路径修改"miDebuggerPath"
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
"type": "cppdbg", // 配置类型,这里只能为cppdbg
"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
"program": "${workspaceFolder}/exe/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径
"args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
"stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
"cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录
"environment": [],
"externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
"MIMode": "gdb",
"miDebuggerPath": "D:/MinGW/bin/gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应
"preLaunchTask": "g++", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
- tasks.json
直接复制粘贴就行了,不用修改,我把生成的exe文件单独放到exe文件夹中
{
"version": "2.0.0",
"command": "g++",
"args": [
"-g",
"${file}",
"-o",
"${workspaceFolder}/exe/${fileBasenameNoExtension}.exe"
], // 编译命令参数
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
"relative",
"\\"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}
这里解释一下args中自定义 exe文件存放路径:
${workspaceFolder}: 当前工作路径
exe: 自己建的文件夹
${fileBasenameNoExtension}: 当前文件的文件名,NoExtension意思就是不带后缀名,然后加个 .exe 就是当前的exe文件,也就是编译生成的 exe 文件
上述路径放一起意思就编译生成的 exe 文件放在exe文件夹中, 把这条配置删除的话,编译生成的exe文件就默认放在了当前工作路径下。顺便说一下 vscode 中一些变量代表什么意思
${workspaceFolder} :表示当前workspace文件夹路径,也即/home/Coding/Test
${workspaceRootFolderName}:表示workspace的文件夹名,也即Test
${file}:文件自身的绝对路径,也即/home/Coding/Test/.vscode/tasks.json
${relativeFile}:文件在workspace中的路径,也即.vscode/tasks.json
${fileBasenameNoExtension}:当前文件的文件名,不带后缀,也即tasks
${fileBasename}:当前文件的文件名,tasks.json
${fileDirname}:文件所在的文件夹路径,也即/home/Coding/Test/.vscode
${fileExtname}:当前文件的后缀,也即.json
${lineNumber}:当前文件光标所在的行号
${env:PATH}:系统中的环境变量