文本编辑器用来编写代码,开发流程一般是
编程常用的文本编辑器有vscode、sublime、vim、emacs等等,这些是独立的文本编辑器,核心作用就是文本编辑,还有一种是ide自带的文本编辑器,比如vs、qt creator都有。
vscode作为文本编辑器针对编程,有两个扩展的功能(个人认为比较核心的),一是“任务”,二是“启动器”
相当于脚本,例如编写完代码,如果手动执行编译过程会很繁琐,写成脚本(例如sh文件)那么用脚本执行就会方便,vs code自己有一种语法让我们方便的执行外部命令
tasks.json文件就相当于.sh或.bat文件
1、比如我们可以创建一个task名叫cmake,然后启动cmake task的时候让他调用cmake去生成ninja.build或者Makefile
2、再定义一个task叫make,去执行make Makefile
或者可以把这两个task合成一个就叫build。
首先准备工程代码
header\main.h:
int a = 100;
CMakeLists.txt:
cmake_minimum_required (VERSION 3.0)
INCLUDE_DIRECTORIES(./header)
project (main)
INCLUDE_DIRECTORIES(./header)
add_executable(M main.cpp)
main.cpp
#include <iostream>
#include "main.h"
int main(){
std::cout << "4554" << std::endl;
std::cout << a << std::endl;
return 0;
}
vscode需要安装的插件有:cmake、c/c++
然后ctrl shift p创建一个任务
{
"version": "2.0.0",
"tasks": [
{
"label": "cmake",
"type": "shell",
"command": "cmake -Bbuild -GNinja -DCMAKE_BUILD_TYPE=Debug",
"group": "build",
"problemMatcher": []
},
{
"label": "ninja",
"type": "shell",
"command": "ninja -C .\\build",
"group": "build",
"dependsOrder": "sequence",
"dependsOn": [
"cmake"
],
"problemMatcher": []
},
{
"label": "run",
"type": "shell",
"command": ".\\build\\M.exe",
"group": "build"
}
]
}
第一个任务是cmake,组build
第二个任务是ninja,组也是build
第二个任务中,这部分胆码代表执行之前需要先执行cmake任务
"dependsOrder": "sequence",
"dependsOn": ["cmake"],
第三个任务是执行exe文件
ctrl shift p
运行任务
选择 ninja
两个任务被执行,得到编译后的exe
启动器,就是调用一个exe运行
比如调试
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug",
"preLaunchTask": "ninja", //运行之前先执行ninja 这个task(由于ninja又需要cmake task,所以执行顺序是cmake task、ninja task、launch,其实就是先编译后调用exe)
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/build/M.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false
}
]
}
原文:https://www.cnblogs.com/feipeng8848/p/14356177.html