您的位置:首页 > 编程语言 > C语言/C++

[VisualStudioCode]_[VSCODE]_[C/C++开发环境配置]

2020-05-10 04:09 2641 查看

场景

1.

Visual Studio Code
发展到现在已经相当稳定了.已经不想1年前的那么卡和慢.目前它有可能成为通用语言开发利器。单就说支持
C/C++
的智能提醒, 函数跳转, 头文件跳转, 编辑器
Debug
就很省开发时间. 还有什么理由不用它呢?

2.

Sublime Text
现在功能更新的节奏也慢了下来, 也对,
Sublime Text
的小团队怎么能和大团队微软相比, 而且
vscode
还是免费的,功能还多,完善。

安装VSCode

点击下载安装 Visual Studio Code

说明

1.

VSCode
让我看到了用轻量级编辑器开发
C/C++
项目的希望.

C/C++ 开发编译调试

1.安装

C/C++
插件, 按
Ctrl+Shift+P
->
Extensions:Intall Extensions
,之后在左边搜索框输入
C++
,选择
C/C++
微软开发的版本和
C++ Intellisense
austin的版本安装两个扩展.

2.新建项目,

vscode
没有新建项目这一说,只需要把项目文件夹拖动到
Explorer
视图里就行了. 比如我这里把
test-vscode2
拖放进去。也可以通过菜单
File
->
Open Folder...
打开文件夹. 如果只是编译某个文件,其实连添加文件夹的步骤都不需要。最主要的是当前项目根目录下需要一个
.vscode
目录.

2.在这文件夹下新建一个文件

test.cpp
,当然你也可以直接在桌面右键某个
cpp
文件用
vscode
打开. 打开
test.cpp
,输入
main
根据智能提示选择
main
的代码片段. 之后随便添加点输出,如下:

#include <iostream>

int main(int argc, char const *argv[])
{
std::cout << "hello world" << std::endl;
return 0;
}

3.编辑完这个

test.cpp
文件时候, 注意当前编辑器要显示这个
test.cpp
文件,不是其他文件,接着按
F5
->选择
C++ (GDB/LLDB)
,会生成一个调试运行配置文件
launch.json
,而且还有一个
.vscode
目录,这个
.vscode
就是项目配置目录,不可改名,不可删除.
单击编辑
launch.json
,修改
program
(编译后可执行文件路径)和
miDebuggerPath
(gdb程序路径)属性,完成后的看以下的
json
文件,关于属性的说明看
launch.json
里的微软超链接属性说明. 之后添加一个属性
preLaunchTask
来作为运行前的编译任务名
build-cygwin
,我这里用
cygwin
作为编译工具链, 也可以使用
Mingw
作为编译工具链.

launch.json

{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(cygwin gdb) launch",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\build\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment":[],
"externalConsole": false,
"preLaunchTask": "build-cygwin",
"MIMode": "gdb",
"logging": {
"moduleLoad": true,
"trace": true
},
// "windows": {"options": {"env": {"path":"C:\\Windows;C:\\Windows\\System32;E:\\software\\cygwin64\\bin"}}},
"miDebuggerPath": "E:\\software\\cygwin64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "asdfas",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}

4.关于安装

Mingw
作为
g++
编译器工具链,这里有说明配置Mingw. 也可以直接在这里下载MinGW. 这个没什么好说的,下载了安装包直接跟着下一步走就行了.

关于安装

Cygwin
下载安装包. 这两个工具链难点就是在选择安装工具链下哪些工具,我安装
Cygwin
工具链下的这些工具,注意在小三角里选择最新的版本,之后不需要下载源代码(有需要可以下): 我推荐使用
cygwin
毕竟可以下载
make
等构件工具,
mingw
要另外找来下载.

5.添加编译设置,点打开

test.cpp
文件为当前文件, 按
F5
,这时候会出现以下提醒:

点击

Configure Task
,选择
C/C++: cl.exe build active file
,会在
.vscode
下生成一个
tasks.json
文件:

6.

tasks.json
是执行编译或其他任务的配置文件,当按快捷键
Ctrl+Shift+B
就会出来任务名称, 选择其中的任务执行编译等操作. 我们把它改为
Cygwin
mingw
的工具链配置. 同样在这里也是可以看配置属性说明. 我这里设置了两个编译器的配置,所以添加了两个任务. 注意这里有添加属性
windows
,是为了不在系统环境变量
path
添加
g++.exe
运行搜索路径,也可以在系统环境变量的
path
里添加这个工具链
bin
路径,不要两个工具链都添加到系统环境变量里,会冲突,如果只是在
tasks.json
里添加,不会污染系统环境,最大程度模拟了客户的环境,因为客户电脑并没有这两个工具链:

我这里在

args
参数里输出
exe
添加了一个
build
目录,所以需要在
test-vscode2
目录下新建一个
build
目录,作为输出目录. 需要自己添加, 不然会编译失败. 其中
-std=c++11
g++
的编译参数,关于
c++11
我开了一个学院课程, 发布完后欢迎来学习C++11语言特性和标准库.

{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"command": "g++",
"tasks": [
{
"type": "shell",
"label": "build-cygwin",
"command": "E:\\software\\cygwin64\\bin\\g++.exe",
"args": [
"-std=c++11",
"-g",
"${file}",
"-o",
"${fileDirname}\\build\\${fileBasenameNoExtension}.exe"
],
"problemMatcher": [
"$gcc"
],
"group": "build",
"windows": {"options": {"env": {"path":"E:\\software\\cygwin64\\bin"}}}

},
{
"type": "shell",
"label": "build-mingw",
"command": "E:\\software\\MinGW\\bin\\g++.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\build\\${fileBasenameNoExtension}.exe"
],
"problemMatcher": [
"$gcc"
],
"group": "build",
"windows": {"options": {"env": {"path":"E:\\software\\MinGW\\bin"}}}
}
]
}

7.编译文件,首先当前文件打开选择为

test.cpp
,接着按
ctrl+shift+b
选择
build-cygwin
,就是看到编译成功,在
build
目录下生成
test.exe
文件. 在下边的
TERMINAL
窗口能看到输出:

> Executing task: E:\software\cygwin64\bin\g++.exe -std=c++11 -g e:\Project\Sample\test-vscode2\test.cpp -o e:\Project\Sample\test-vscode2\build\test.exe <

8.运行调试

exe
文件, 注意因为
launch.json
并没有设置环境变量的属性,我们需要新增一个
setting.json
项目全局配置文件来添加
cygwin
的运行搜索目录.不然
gdb
会运行失败.

选择菜单

File->Preferences->Setting
,在搜索框里输入
terminal.integrated.env.windows
,选择
Workspace
,点击
Edit in settings.json
. 会生成一个空的
setting.json
文件.

完整配置,其实就是加了一个属性

terminal.integrated.env.windows
:

{
"terminal.integrated.env.windows": {
"path": "C:\\Windows;C:\\Windows\\System32;E:\\software\\cygwin64\\bin"
}
}

接着打开

test.cpp
文件,按
F5
,会在右下角弹出,点击
Allow
.

之后还需要重新

F5
运行,运行成功后,可以在下边的窗口
DEBUG CONSOLE
里看到输出.

9.配置头文件跳转,智能提醒. 按

ctrl+shift+p
,选择->
C/C++ Edit Configurations(UI)
.选择
Win32
->点击
Add Configuration
.会生成一个
c_cpp_properties.json
文件. 这个主要是配置头文件查找目录的,
cygwin
配置好的如下,配置好之后我们按住
CTRL
+点击
test.cpp
里的会打开相应的头文件.


{
"configurations": [
{
"name": "Linux",
"includePath": [
"E:\\software\\cygwin64\\usr\\include",
"E:\\software\\cygwin64\\lib\\gcc\\x86_64-pc-cygwin\\7.4.0\\include",
"E:\\software\\cygwin64\\lib\\gcc\\x86_64-pc-cygwin\\7.4.0\\c++",
"E:\\software\\cygwin64\\lib\\gcc\\x86_64-pc-cygwin\\7.4.0\\include\\c++\\x86_64-pc-cygwin"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"cStandard": "c11",
"cppStandard": "c++11",
"intelliSenseMode": "gcc-x64",
"compilerPath": "E:\\software\\cygwin64\\bin\\g++.exe"
}
],
"version": 4
}

注意: 增加

compilerPath
是为了让
vscode
支持用
g++
进行实时代码智能提醒(用编译的方式).

10.最后,直接编译运行

F5
。只是编译
Ctrl+Shift+b
->选择
build-cygwin
. 在
DEBUG CONSOLE
看运行输出, 在
TERMINAL
看编译输出.

11.至于多个文件的项目编译,只能通过

makefile
来配置编译,关于
makefile
的配置,可以看 通用Makefile配置编译选项. 更完整的通过分析头文件是否更新来编译查看从netbeans里提取的通用构建C++项目的Makefile文件.

参考

debugging-_launch-configurations

Create a build task

c-cpp-properties-schema-reference

infoworld 博客专家 原创文章 347获赞 126访问量 120万+ 关注 他的留言板
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: