LOX: 利用VSCode进行C/C++开发 您所在的位置:网站首页 vscode可以开发什么 LOX: 利用VSCode进行C/C++开发

LOX: 利用VSCode进行C/C++开发

2022-06-13 14:59| 来源: 网络整理| 查看: 265

文章框架 脑图 前言

LOX(Lightweight Open-source Xplatform)是我正在编写的一个全新文集,意思就如其名:轻量级-开源-跨平台。就是这个系列中的文章和例程都符合轻量级(Lightweight)、开源(Open-Source)、跨平台(Cross-Platform)。嗯,我这人吧,就好起一些新的名词。 本篇作为LOX系列的第一篇,也向你展示了一个最简单的LOX项目。如果想看一个稍微复杂一点的LOX项目,可以clone我Github上的一个Repo:2048 CLI。欢迎来搞~

单源文件

先从简单的来,一个源文件。

工具

进行本次LOX开发所需要工具,点击下面的Title进入官网下载。

VSCode (Visual Studio Code)

VSCode是微软出品的一款非常良心的轻量级编辑器,虽说是完全照着Sublime Text弄出来的,但它免费啊,还开源啊,所以我也就不深究模仿不模仿了。(嗨呀,原则呢?嗯?)

需要的插件

插件 标识符 说明 C/C++ ms-vscode.cpptools C/C++语言支持,简单的编辑、编译、调试等功能。 MinGW (Minimalist GNU for Windows)

这个工具是在Windows上需要的。因为Windows没有GNU工具包,MinGW就是为Windows而生的GNU工具包。

需要安装的包

包 说明 mingw32-gcc.bin GNU C编译器 mingw32-gcc-g++.bin GNU C++编译器 mingw32-gdb.bin GNU 调试器

环境变量 在系统变量的PATH中,添加MinGW安装的根目录中的bin文件夹(如C:\MinGW\bin),且尽量将这一项往上移(为了优先搜索该目录)。

设置过程

完成这一步后,如果打开了VSCode,记得要重启VSCode。

编码

建立工作空间

新建一个文件夹 - 右键 - Open with Code。使用这种方法的前提是你在安装VSCode时选中了“”

Open with Code 或者在VSCode中 - 文件 - 打开文件夹,选中一个空文件夹作工作空间。

新建源文件 鼠标移动到新建的文件夹的根目录处(我的是“HelloWorld”),点击下图蓝色框住的图标(新建文件)。

新建按钮 之后在其中输入文件名(包括后缀名),本例的后缀名写".c"或".cpp"。然后在其中写个最简单的HelloWorld。

代码

#include int main(){ printf("Hello World"); return 0; }

编码时,如果想自动补全,需要在包含指定头文件后保存代码,然后才会启动自动补全。 也就是说,它只对保存后的代码进行探测。

生成

生成快捷键:Ctrl(Mac: Command)+Shift+B 第一次生成时,VSCode会提示找不到生成的配置文件task.json,点击“配置生成任务”。

配置生成任务 在给出的模板中选择Others。在打开的task.json中改为下述代码。

{ "version": "0.1.0", "command": "gcc", "isShellCommand": true, // 是否为Shell命令 "args": ["-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}.out"], "showOutput": "always" }

其实作用就是代码中所述的。 "command": "gcc"和"args": ["-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}.out"]就相当于在Shell中直接键入gcc -c 源文件.c -o 源文件所在目录/源文件.out。将鼠标放在Key(冒号前面的)上会显示所对应的意思(下面的Launch.json同)。 简单的解释一下其中几个$标识

标识 作用 ${file} 当前文件的完整文件名(包括路径、文件名、后缀名) ${fileDirname} 当前文件的路径 ${fileBasenameNoExtension} 当前文件的文件名(不包括路径、后缀名)

其中所说的“当前文件”指的是你在VSCode编辑器中打开的并正在编辑的文件。

当前正在编辑的文件

完成task.json的配置后,我们缩写的程序已经可以运行了。生成的程序就是源文件所在根目录中出现的与源文件同名但后缀名为.out的文件。

调试

我们当然不能仅仅满足于生成出程序就行的,大部分情况我们是要调试的。

调试快捷键:F5

第一次按F5时和生成时一样,找不到配置文件,在打开的模板中选C++ (GDB/LLDB)(可以跨平台)。 生成的配置文件为launch.json

将launch.json改为下述代码 { "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", // 本配置的名称,随便起 "type": "cppdbg", "request": "launch", // 如果调试的类型为附加进程,需将这里改为attach "program": "${fileDirname}/${fileBasenameNoExtension}.out", // 要调试的程序路径 "stopAtEntry": false, // 是否在起点处停顿 "cwd": "${workspaceRoot}", "externalConsole": true, // 在外部控制台运行。若为false,则运行在VSCode自带的控制台中 "linux": { // Linux 系统下的配置 "MIMode": "gdb" }, "osx": { // OS X系统下的配置 "MIMode": "lldb" }, "windows": { // Windows 系统下的配置 "MIMode": "gdb", "miDebuggerPath": "gdb.exe" } } ] }

Windows默认是没有gdb或lldb的,所以我们需要安装MinGW中的gdb,并在这里设置gdb的路径。只写程序名是因为设置了环境变量。 完成launch.json的配置并切换到源代码编辑页之后

再一次:F5 打上断点 合影留念 多源文件

什么!你不满足于单源文件开发?!来来来,我给你看个宝贝。

的确,单源文件开发一般也就是个做做算法题,现在随便写个像样的工程都是多个源文件编译链接一条龙的。这样VSCode可以吗,也可以!但需要新的帮手:CMake。

工具 VSCode (Visual Studio Code)

新需要的插件 实际上通过CMake在VSCode上进行项目开发可以不需要任何插件,但是用上这些插件之后你会发现这个过程会变得特别方便! 除去单源文件中所提到的cpptools,还需要下面的插件。

插件 标识符 说明 CMake twxs.cmake 提供CMake语法支持,包括高亮和自动补全等 CMake Tools vector-of-bool.cmake-tools 这个屌!完全把CMake封装成一套VSCode底边栏的工具集 MinGW (Minimalist GNU for Windows)

同样这一步仅在Windows上做。

需要新安装的包

包 说明 mingw32-make.bin GNU Make,根据makefiles(在这里makefiles由CMake搞定)生成项目

为了方便调用,我一般会把mingw32-make.exe在其目录中复制一份出来,命名为make.exe。 这一步某种程度意义上讲还蛮重要的,第一是方便自己调用(直接在shell里make),第二是方便vscode的插件调用(如果不弄一个cmake.exe出来的话,vector-of-bool.cmake-tools会报错,不过具体锅是vector-of-bool.cmake-tools还是twxs.cmake的也不太清楚,目前vector-of-bool已经把这个问题(#157)标记为bug,并打算在0.10.0版本解决。)。

CMake

安装时记得将Add CMake to system PATH勾上。是for all users呢还是for current user你自己看咯。

编码

上个例子是C,那这个就上C++好了。

目录结构

我就不同目录下多文件了啊,那没啥意思。咱上多层级目录多源文件的。

目录结构 代码 Printer.h #pragma once class Printer{ public: void print(); Printer(); ~Printer(); }; Printer.cpp #include "Printer.h" #include using namespace std; void Printer::print(){ cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有