学习在VS Code使用C++ 1

  就这个

  anyway 今天开始试试vscode,之前一直都用visual studio写,先配置其C++环境。网上找资料配置了下。

  跟着官网配置一下C++。

  https://code.visualstudio.com/docs/cpp/introvideos-cpp

  小声:其实以前用过,但当我使用头文件时,vs code弄了好久一直没有成功。所以我就弃了,感觉不适合那时候的我。

  anyway 怎么让C++运行就略过了

  能跑了。

  Understanding tasks.json

  json文件,一直以来都没懂的东西。之前头文件的问题对着网上内容对json乱改一通,然后emmmm

  这里文章简要介绍了一下

  command指定了要跑的程序,这里是C++。

  args是一个数组,会指定要给g++的命令行参数。这些参数会在文件中按照编译器期望的格式输出(所以是什么顺序呢)

  (噢好像就是args里各个东西的顺序,依次传入"-fdiagnostics-color=always", "-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe")(但是第一个参数是什么鬼)

  由"${file}",g++将会知道要获取的活动文件(active file),并对其进行编译,并在当前文件里生成一个名字与该文件相同的可执行文件(.exe)。

  "label"是会在task list中看到的值,可以随意命名(task list是什么?)(任务列表是什么?)

  "detail"是任务列表中对任务的描述,强烈建议重命名(所以任务列表是什么)(要怎么重命名,描述在做什么就行了吗)以区分与此类似的任务。

  运行后,程序将会从json文件读取信息了解怎么生成并运行文件。在json中,可以定义多个build task,其中被标记default的task在run时将会被默认运行(所以怎么标记default;;;)(找到了,group里的isDefault)。如果要改变默认的编译器,可以在Command Palette(ctrl+shift+P)中运行Tasks: Configure Default Build Task,

  或者可以在tasks.json中通过替换group段:

  变为

  如果想要生成多个C++文件,可以把json中${file}改为${workspaceFolder}/*.cpp。同样,输出的文件名也可以改为${fileDirname}\\${fileBasenameNoExtension}.exe。

  好吧还是不太懂json文件。但至少更了解了一点(点点)。

  以及,play button是run还是debug,是根据你上一次操作决定的。

  Explore the debugger

  我一直都是打印输出找bug哈哈哈哈

  step over:会跳过函数欸。

  跳出函数有两个办法,一个是直接step over,另一个是在别的函数设置断点。

  F9是在当前处设定断点,F5是从当前行开始运行。要么再跑回当前行(循环,还是goto(bushi)),或者直接跑完。

  Set a watch

  em用于跟踪变量的值,可以在变量上设定watch。就直接在watch里打上变量名。要不然就hover在这个变量上。

  Customize debugging with launch.json

  以后可以试试用debug?但还是不如直接打印快)至少现在是这么感觉的)

  当按F5时,C++扩展会创建一个动态的debug配置(on the fly指“不经过某种额外步骤而直接进行某项活动)(the C++ extension creates a dynamic debug configuration on the fly.)

  要创建launch.json,可以在play按钮的menu中选Add Debug Configuration,但我这里没有这个选项。

  或者,在Command Palette中找。

  然后,另一个json。所以json是配置文件吧

  program会指定要debug的program。此处指定活动文件夹(active folder)和活动文件(active filename)。args是在运行期间要传输给程序的参数。

  stopAtEntry如果为true,开启debug时,会从main这个地方开始。

  现在,当开始debug时,会读取launch.json的信息。

  Adding additional C/C++ settings

  如果想对C++扩展有更进一步的控制,可以创建一个c_cpp_properties.json文件。这样,可以更改一些设置(编译器的path、include的paths,C++标准等等)

  通过在控制面板运行C/C++: Edit Configurations (UI)可以看见C/C++配置界面。

  这一在这里修改,VS Code 会把他们写成c_cpp_properties.json文件。

  跟步骤把Configuration name改为GCC试试,

  噢噢 这里说 如果你的头文件不在workspace或标准库中,可以改include path。

  xs,那看来以前让我弃掉VS Code的问题现在能够解决哩

  Compiler path

  也是c_cpp_properties.json的内容,可以帮助程序推断C++标准头文件路径(是这么翻译的吧;)。就,智能补全(smart completions)以及 Go to Definition navigation(不知道怎么翻译)要这个内容填了,才能够生效。

  compilerPath的寻找顺序是:1. 首先检查the Microsoft Visual C++ compiler2. Then look for g++ on Windows Subsystem for Linux (WSL)(不知道后面那个是什么 指Windows Subsystem for Linux (WSL))3. 然后是g++ for MinGW-w64(不知道这里for怎么翻译。。。。呜)

  如果已经安装Visual Studio或WSL(找了一下,windows的linux子系统,能在windows系统使用linux,fine)。如果想要把compilerPath改到之前项目的编译器,可以使用这个。

  Troubleshooting

  就 可能出现的问题,MSYS2已经安装,但gdb和g++找不到,anyway我没有这个问题。

  他说要根据MSYS2 website的步骤安装,并使用MSYS CLI去安装MinGW-w64。同时,也要安装the full MinGW-w64 toolchain ()才会有debugger。

  next step之后再探索。

  那现在就开始用VS Code写C++咯;试试看吧:)