首页 > 其他 > 详细

基本概念(5)——文本编辑器

时间:2021-02-01 14:50:31      阅读:11      评论:0      收藏:0      [点我收藏+]

文本编辑器用来编写代码,开发流程一般是

  • code,任意文本编辑器即可,哪怕是windows记事本
  • build,使用编译器(或者build 工具make、cmake等)编译成可执行文件
  • debug,需要编译的时候带有调试信息

编程常用的文本编辑器有vscode、sublime、vim、emacs等等,这些是独立的文本编辑器,核心作用就是文本编辑,还有一种是ide自带的文本编辑器,比如vs、qt creator都有。

vscode

vscode作为文本编辑器针对编程,有两个扩展的功能(个人认为比较核心的),一是“任务”,二是“启动器”

tasks

相当于脚本,例如编写完代码,如果手动执行编译过程会很繁琐,写成脚本(例如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

launch

启动器,就是调用一个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
        }
    ]
}

vim

基本概念(5)——文本编辑器

原文:https://www.cnblogs.com/feipeng8848/p/14356177.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!