Visual Studio及CMake扫盲
0:Introduction
写这个文章的时候我已经不是你航的航C助教了.记得在2021年春季学期的助教经历中,我所在班级的几十位同学中只有1位同学用的Visual Studio 2019,1位同学用的Visual Studio Code,剩下的大多数同学都用的Dev-C++.试问,Dev-C++真的好用吗?调试的舒适程度如何?你们是怎么成功安装的?为什么我安装几次失败几次?于是准备写一些水文,介绍下我当时学C语言用到的这两个工具(Visual Studio和Visual Studio Code我都用过),在这个专栏里我们先说说Visual Studio这个宇宙第一开发环境.
本文主要面向2021级航C的同学,及其他想入手C/C++语言的同学.在远程开发树莓派的时候也有应用,CMake是必不可少的工具.
1:Visual Studio Briefing and Install
先说结论,这个东西真的好用,至少比Dev-Cpp好用.
下载链接:官网 visualstudio.microsoft.com在一个显眼的地方按照提示下载最新版的Visual Studio 2019.
然后可以得到一个Visual Studio Installer.
初学者用社区版(Community)就足够了.下面的安装说明,我是用的企业版(Enterprise),原理类似.

需要把上面fig.0的红圈内容选上,然后就基本上能够应对航类C语言程序设计课了,代码提示和检查功能比DEV要好用的多.

安装VS2019的C/C++开发环境组成:
Windows通用C运行时(单个组件里面选择打勾,如果缺少可能写C语言程序会出问题)
MSVC编译器(自带) C++运行时(自带) Clang编译器 (单个组件里面选择打勾,建议用这个)
CMake(单个组件里面打勾)

如果要远程开发调试树莓派或者别的Linux系统还需要补充 一些功能,如fig.2所示.
划重点:
需要保证C盘(系统盘)有足够的空闲空间,修改安装位置到D盘(或者其他装软件的硬盘,也要有足够的空间).庄子《逍遥游》:且夫水之积也不厚,则其负大舟也无力.曹公曰:且夫硬盘之容量也不厚,则其负大IDE也无力.
点安装,等20分钟左右,重启几次就ok.打开Visual Studio 2019开始愉快的打代码吧.
2:How to use CMake
需要第一步安装好了Visual Studio 2019 (社区版/专业版/企业版)和Visual Studio CMake工具(Windows/Linux).CMake 是一个跨平台开源的构建系统.它是一个集软件构建测试打包于一身的软件.它使用与平台和编译器独立的配置文件来对软件编译过程进行控制.使用Cmake就可以不用Visual Studio的解决方案去管理代码了.
a.创建新项目
其实就是开一个文件夹,里面放上一个CMake脚本文件CMakeLists.txt和一个初始的代码文件,Visual Studio自动识别并配置环境.

然后进入配置项目属性页面,下面以将解决方案和项目放在同一目录为例来说

CMakeLists.txt (没有这个文件,CMake无法识别项目的文件 源代码等 Visual Studio会显示杂项文件,调试等功能不能正常使用)
需要编辑一下.
(b站专栏没有CMake脚本的语法语亮,我就截图了,各位看官烦请自己打一遍,顺便熟悉下,一定注意空格)

Visual Studio 可以给CMake脚本加语法高亮.更详细些的解释是下面的.

还有两个代码文件:
C++ Source CMakeProject2.cpp
C/C++ Header CMakeProject2.h
Online Judge系统一次只能提交一个文件,Header是用不着的可以删了,但是Source和CMakeLists.txt必须有.

然后进去写C或者C++代码吧.有语法提示和IntelliSense检查等,比DEV能更明显的减小出错的可能.

b.添加别的文件
众所周知,航C每次上机课有8个到10个题目.把每个题目写在单独的文件里面,在准备期末上机时会更舒服.在DEV里面只需要另存为一下.在Visual Studio里面也可以做类似的事情.


在如fig.6所示的CMakeList.txt文件里面添加
add_executable(p0 "p0.c")
然后在新建的C语言源文件里面正常写代码,做题或者整活就好了
c.调试[DEBUG]
在绿三角处选择要调试的目标程序单击以调试(选中了按F5调试也行)
F5开始调试 F11逐语句调试 F10逐过程调试 Shift+F5停止 Shift+F11跳出
行号左侧的灰色一条可以通过 单击 来 插入断点让程序暂停下来.
然后鼠标光标移到变量名上,可以观察变量的值,右键可以添加监视,观察变量值的变化.

d.打开已有的CMake项目
没必要每次上机新建一个项目.可以把以前建好的项目打开继续添加C/C++代码,添加 程序
下面的图是打开刚才建好的项目.上机课可以建一个好认的CMake项目文件夹,每次上机就进去添加一批文件,单个的调试.(比如说第一次上机的A题就可以命名为C1-A.c,一定注意扩展名是.c)

最后,如果有不会的,可以去找老师或者助教答疑.愿各位借助这工具能少写些BUG.