Visual Studio及CMake掃盲
0:Introduction
寫這個(gè)文章的時(shí)候我已經(jīng)不是你航的航C助教了.記得在2021年春季學(xué)期的助教經(jīng)歷中,我所在班級(jí)的幾十位同學(xué)中只有1位同學(xué)用的Visual Studio 2019,1位同學(xué)用的Visual Studio Code,剩下的大多數(shù)同學(xué)都用的Dev-C++.試問,Dev-C++真的好用嗎?調(diào)試的舒適程度如何?你們是怎么成功安裝的?為什么我安裝幾次失敗幾次?于是準(zhǔn)備寫一些水文,介紹下我當(dāng)時(shí)學(xué)C語(yǔ)言用到的這兩個(gè)工具(Visual Studio和Visual Studio Code我都用過),在這個(gè)專欄里我們先說說Visual Studio這個(gè)宇宙第一開發(fā)環(huán)境.
本文主要面向2021級(jí)航C的同學(xué),及其他想入手C/C++語(yǔ)言的同學(xué).在遠(yuǎn)程開發(fā)樹莓派的時(shí)候也有應(yīng)用,CMake是必不可少的工具.
1:Visual Studio?Briefing and Install
先說結(jié)論,這個(gè)東西真的好用,至少比Dev-Cpp好用.
下載鏈接:官網(wǎng) visualstudio.microsoft.com在一個(gè)顯眼的地方按照提示下載最新版的Visual Studio 2019.
然后可以得到一個(gè)Visual Studio Installer.
初學(xué)者用社區(qū)版(Community)就足夠了.下面的安裝說明,我是用的企業(yè)版(Enterprise),原理類似.

需要把上面fig.0的紅圈內(nèi)容選上,然后就基本上能夠應(yīng)對(duì)航類C語(yǔ)言程序設(shè)計(jì)課了,代碼提示和檢查功能比DEV要好用的多.

安裝VS2019的C/C++開發(fā)環(huán)境組成:
Windows通用C運(yùn)行時(shí)(單個(gè)組件里面選擇打勾,如果缺少可能寫C語(yǔ)言程序會(huì)出問題)
MSVC編譯器(自帶)?C++運(yùn)行時(shí)(自帶) Clang編譯器?(單個(gè)組件里面選擇打勾,建議用這個(gè))
CMake(單個(gè)組件里面打勾)

如果要遠(yuǎn)程開發(fā)調(diào)試樹莓派或者別的Linux系統(tǒng)還需要補(bǔ)充 一些功能,如fig.2所示.
劃重點(diǎn):
需要保證C盤(系統(tǒng)盤)有足夠的空閑空間,修改安裝位置到D盤(或者其他裝軟件的硬盤,也要有足夠的空間).莊子《逍遙游》:且夫水之積也不厚,則其負(fù)大舟也無(wú)力.曹公曰:且夫硬盤之容量也不厚,則其負(fù)大IDE也無(wú)力.
點(diǎn)安裝,等20分鐘左右,重啟幾次就ok.打開Visual Studio 2019開始愉快的打代碼吧.
2:How to use CMake
需要第一步安裝好了Visual Studio 2019 (社區(qū)版/專業(yè)版/企業(yè)版)和Visual Studio CMake工具(Windows/Linux).CMake 是一個(gè)跨平臺(tái)開源的構(gòu)建系統(tǒng).它是一個(gè)集軟件構(gòu)建測(cè)試打包于一身的軟件.它使用與平臺(tái)和編譯器獨(dú)立的配置文件來(lái)對(duì)軟件編譯過程進(jìn)行控制.使用Cmake就可以不用Visual Studio的解決方案去管理代碼了.
a.創(chuàng)建新項(xiàng)目
其實(shí)就是開一個(gè)文件夾,里面放上一個(gè)CMake腳本文件CMakeLists.txt和一個(gè)初始的代碼文件,Visual Studio自動(dòng)識(shí)別并配置環(huán)境.

然后進(jìn)入配置項(xiàng)目屬性頁(yè)面,下面以將解決方案和項(xiàng)目放在同一目錄為例來(lái)說

CMakeLists.txt (沒有這個(gè)文件,CMake無(wú)法識(shí)別項(xiàng)目的文件 源代碼等 Visual Studio會(huì)顯示雜項(xiàng)文件,調(diào)試等功能不能正常使用)
需要編輯一下.
(b站專欄沒有CMake腳本的語(yǔ)法語(yǔ)亮,我就截圖了,各位看官煩請(qǐng)自己打一遍,順便熟悉下,一定注意空格)

Visual Studio 可以給CMake腳本加語(yǔ)法高亮.更詳細(xì)些的解釋是下面的.

還有兩個(gè)代碼文件:
C++ Source?CMakeProject2.cpp
C/C++ Header?CMakeProject2.h
Online Judge系統(tǒng)一次只能提交一個(gè)文件,Header是用不著的可以刪了,但是Source和CMakeLists.txt必須有.

然后進(jìn)去寫C或者C++代碼吧.有語(yǔ)法提示和IntelliSense檢查等,比DEV能更明顯的減小出錯(cuò)的可能.

b.添加別的文件
眾所周知,航C每次上機(jī)課有8個(gè)到10個(gè)題目.把每個(gè)題目寫在單獨(dú)的文件里面,在準(zhǔn)備期末上機(jī)時(shí)會(huì)更舒服.在DEV里面只需要另存為一下.在Visual Studio里面也可以做類似的事情.


在如fig.6所示的CMakeList.txt文件里面添加
add_executable(p0 "p0.c")
然后在新建的C語(yǔ)言源文件里面正常寫代碼,做題或者整活就好了
c.調(diào)試[DEBUG]
在綠三角處選擇要調(diào)試的目標(biāo)程序單擊以調(diào)試(選中了按F5調(diào)試也行)
F5開始調(diào)試 F11逐語(yǔ)句調(diào)試?F10逐過程調(diào)試 Shift+F5停止?Shift+F11跳出
行號(hào)左側(cè)的灰色一條可以通過 單擊 來(lái) 插入斷點(diǎn)讓程序暫停下來(lái).
然后鼠標(biāo)光標(biāo)移到變量名上,可以觀察變量的值,右鍵可以添加監(jiān)視,觀察變量值的變化.

d.打開已有的CMake項(xiàng)目
沒必要每次上機(jī)新建一個(gè)項(xiàng)目.可以把以前建好的項(xiàng)目打開繼續(xù)添加C/C++代碼,添加 程序
下面的圖是打開剛才建好的項(xiàng)目.上機(jī)課可以建一個(gè)好認(rèn)的CMake項(xiàng)目文件夾,每次上機(jī)就進(jìn)去添加一批文件,單個(gè)的調(diào)試.(比如說第一次上機(jī)的A題就可以命名為C1-A.c,一定注意擴(kuò)展名是.c)

最后,如果有不會(huì)的,可以去找老師或者助教答疑.愿各位借助這工具能少寫些BUG.