win10下VSCode+CMake+Clang+GCC环境搭建教程图解
打算⽤C/C++把基本的数据结构与算法实现⼀遍, 为考研做准备, 因为只是想实现算法和数据结构, 就不太想⽤VisualStudio, 感觉VSCode不错, 遂在⽹上了⼀些教程, 结合⾃⼰的需求, 配置⼀下开发环境.安装软件
CMake
CMake是⼀个跨平台的⾃动化建构系统,它使⽤⼀个名为 的⽂件来描述构建过程;
官⽹下载安装, 傻⽠式操作;
记得把安装⽬录下的bin⽂件添加到系统环境变量, 这个可以在安装的时候勾选, 勾选了就不⽤⾃⼰添加了;
检测是否安装成功:
MinGW
MinGW即Minimalist GNU For Windows,是将GNU开发⼯具移植到Win32平台下的产物,是⼀套Windows上的GNU⼯具集。简单说,MinGW是⼀个编译环境; 相当于linux下的GCC;
官⽹下载链接;
安装好将安装⽬录下的bin⽂件夹的路径添加到环境变量:
Clang
类似GCC的编译器, 它的⽬标是⼲死GCC(⽹上看到别⼈这么说的).
:
Clang(发⾳为/ˈklæŋ/类似英⽂单字clang[1])是⼀个C、C++、Objective-C和Objective-C++编程语⾔的编译器前端。它采⽤了LLVM作为其后端,⽽且由LLVM2.6开始,⼀起发布新版本。它的⽬标是提供⼀个GNU编译器套装(GCC)的替代品,⽀持了GNU编译器⼤多数的编译设置以及⾮官⽅语⾔的扩展。作者是克⾥斯·拉特纳(Chris Lattner),在苹果公司的赞助⽀持下进⾏开发,⽽源代码许可是使⽤类BSD的伊利诺伊⼤学厄巴纳-⾹槟分校开源码许可。
VSCode中可以⽤它来提供智能提⽰;
官⽹下载
傻⽠式安装, 安装好把安装⽬录下的bin⽂件夹的路径添加到环境变量;
安装VSCode插件
如图, 安装好图中的插件:
新建⽂件夹, 开始撸代码
main.cpp
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
int a = 89;
int b = a++;
char buf[10] ;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "";
<(); //防⽌闪屏
return 0;
}
<
cmake_minimum_required(VERSION 3.11)
project(VSCode_Cpp_CMake)
# 代码路径
aux_source_directory(. DIR_TOOT_SRCS)
# debug 模式
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
# ⽣成可执⾏的⽂件
add_executable(VSCode_Cpp_CMake ${DIR_TOOT_SRCS})
配置 c_cpp_properties.json
键盘按下: ctrl+shift+p
{
"configurations": [
{
"name": "CMake",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
]
,
"windowsSdkVersion": "10.0.18362.0",
"compilerPath": "C:/MinGW/bin/g++.exe", // 根据⾃⼰的安装⽬录确定 "cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "clang-x64", // 注意修改, 提供智能提⽰
"configurationProvider": "ake-tools"
}
],
"version": 4
}
配置CMake
按快捷键: ctrl+shift+p
按下图操作:
这⾥操作好就可以进⾏编译⽣成exe⽂件了:
配置调试⽂件 launch.json 和 task.json
使⽤gdb进⾏调试.
快捷键: F5 -> C++ (GDB/LLDB) -> g++.exe build and debug actvive file
vscode 会⾃动⽣成⼀个默认的 launch.json 和 task.json
编辑launch.json和task.json, 注意加了注释的地⽅都是要修改的;
task.json
{
"tasks": [
{
"type": "shell",
"label": "cmake build active file", // 任务名称
"command": "cmake --build ${workspaceFolder}\\build --config Debug --target all -- -j 10", // cmake指令 "args": [
], // 指令参数
"options": {
"cwd": "C:/MinGW/bin"
}
}
],
"version": "2.0.0"
}
launch.json
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: go.microsoft/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch", // default: g++.exe build and debug active file
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}\\build\\", // 可执⾏⽂件所在的路径, Demo= 替换成⾃⼰的项 "args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true, // 显⽰独⽴控制台窗⼝
"MIMode": "gdb",
"miDebuggerPath": "C:\\MinGW\\bin\\",
linux下gcc编译的四个步骤"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
,
"preLaunchTask": "cmake build active file" // 执⾏cmake编译任务, 再task.json中定义的
}
]
}
编译和调试
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论