發(fā)環(huán)境:Visual Studio與VSCode+MinGW/Clang全攻略)
1. 項(xiàng)目概述為什么需要一個(gè)純凈的C環(huán)境如果你剛接觸C或者從其他語(yǔ)言轉(zhuǎn)過(guò)來(lái)第一個(gè)攔路虎往往不是語(yǔ)法而是環(huán)境。我見(jiàn)過(guò)太多新手興致勃勃地打開(kāi)教程結(jié)果卡在“編譯失敗”、“找不到頭文件”或者“鏈接器錯(cuò)誤”上熱情瞬間被澆滅。這感覺(jué)就像你想學(xué)開(kāi)車(chē)結(jié)果連怎么啟動(dòng)引擎都搞不定。所以今天我們不談高深的算法和設(shè)計(jì)模式就踏踏實(shí)實(shí)地從零開(kāi)始把C的“工作臺(tái)”給搭起來(lái)。這個(gè)“工作臺(tái)”我們稱(chēng)之為“編程環(huán)境”或“開(kāi)發(fā)環(huán)境”。它不是一個(gè)單一的軟件而是一套工具鏈的集合主要包括編譯器把人類(lèi)寫(xiě)的代碼翻譯成機(jī)器能懂的指令、編輯器/集成開(kāi)發(fā)環(huán)境讓你寫(xiě)代碼的地方提供語(yǔ)法高亮、自動(dòng)補(bǔ)全等便利、構(gòu)建工具管理編譯和鏈接過(guò)程以及調(diào)試器幫你找出代碼里的bug。對(duì)于C來(lái)說(shuō)由于歷史原因和跨平臺(tái)需求這套工具鏈的選擇和配置比Python、JavaScript這類(lèi)腳本語(yǔ)言要復(fù)雜一些但一旦配好后續(xù)的學(xué)習(xí)和開(kāi)發(fā)會(huì)順暢無(wú)比。本指南的目標(biāo)是無(wú)論你用的是Windows、macOS還是Linux都能跟著步驟搭建一個(gè)穩(wěn)定、高效、適合學(xué)習(xí)和小型項(xiàng)目的C環(huán)境。我們會(huì)重點(diǎn)講解兩種主流方案Visual Studio一站式解決方案適合Windows用戶(hù)和VSCode MinGW-w64/LLVM輕量靈活跨平臺(tái)首選。我會(huì)詳細(xì)到每一個(gè)安裝選項(xiàng)的含義每一個(gè)配置參數(shù)的作用以及踩坑后的補(bǔ)救措施。畢竟搭建環(huán)境本身就是學(xué)習(xí)C的第一課。2. 核心工具鏈解析編譯器、編輯器與構(gòu)建系統(tǒng)在動(dòng)手安裝之前我們必須搞清楚我們要安裝的到底是什么以及為什么選它。盲目點(diǎn)擊“下一步”是環(huán)境配置出錯(cuò)的主要根源。2.1 編譯器代碼的翻譯官編譯器是C開(kāi)發(fā)的核心。它的任務(wù)是將.cpp源文件轉(zhuǎn)換成計(jì)算機(jī)可執(zhí)行的二進(jìn)制文件如Windows的.exe Linux的.out。沒(méi)有編譯器你寫(xiě)的代碼只是一堆文本。主流選擇MSVC (Microsoft Visual C)微軟官方出品深度集成在Visual Studio中。它是Windows平臺(tái)的原生編譯器對(duì)Windows API和最新C標(biāo)準(zhǔn)支持最好生成的程序性能優(yōu)化也很出色。如果你確定只在Windows上開(kāi)發(fā)和運(yùn)行程序MSVC是首選。GCC (GNU Compiler Collection)/MinGW-w64GCC是開(kāi)源世界的標(biāo)桿是Linux系統(tǒng)的默認(rèn)編譯器。MinGW-w64是GCC在Windows上的一個(gè)移植版本它允許你在Windows上編譯出原生Windows程序不依賴(lài)額外的運(yùn)行時(shí)庫(kù)。它的優(yōu)勢(shì)是開(kāi)源、免費(fèi)、跨平臺(tái)代碼在Linux和Windows上編譯行為更一致是學(xué)習(xí)C標(biāo)準(zhǔn)特性的好選擇。Clang/LLVM近年來(lái)勢(shì)頭迅猛的編譯器以其出色的編譯速度、清晰易懂的錯(cuò)誤/警告信息而聞名。蘋(píng)果的Xcode就基于Clang。它同樣跨平臺(tái)并且與GCC有很高的兼容性。注意對(duì)于初學(xué)者我強(qiáng)烈建議在Windows上選擇MinGW-w64或MSVC在macOS上使用Xcode Command Line Tools自帶的Clang在Linux上使用系統(tǒng)自帶的GCC。這樣可以避免早期陷入復(fù)雜的交叉編譯或兼容性問(wèn)題。2.2 編輯器與集成開(kāi)發(fā)環(huán)境你的編碼工作站這是你每天面對(duì)最久的工具。主要分兩類(lèi)集成開(kāi)發(fā)環(huán)境如Visual Studio。它把編輯器、編譯器、調(diào)試器、項(xiàng)目管理、UI設(shè)計(jì)器等所有功能打包在一起開(kāi)箱即用功能強(qiáng)大但通常比較龐大。代碼編輯器如Visual Studio Code。它本身輕量通過(guò)安裝擴(kuò)展來(lái)獲得類(lèi)似IDE的功能如C智能感知、調(diào)試。它配置靈活啟動(dòng)快速適合喜歡DIY和需要跨語(yǔ)言開(kāi)發(fā)的開(kāi)發(fā)者。選擇建議追求省心、功能全面且主要在Windows開(kāi)發(fā)直接安裝Visual Studio Community版免費(fèi)。它包含了MSVC編譯器、強(qiáng)大的調(diào)試器和圖形化項(xiàng)目管理工具是入門(mén)和中小項(xiàng)目開(kāi)發(fā)的利器。喜歡輕量、定制化或需要在多平臺(tái)Win/macOS/Linux保持一致的體驗(yàn)選擇VSCode然后搭配MinGW-w64或Clang編譯器。這也是目前很多專(zhuān)業(yè)開(kāi)發(fā)者和學(xué)生的選擇。2.3 構(gòu)建系統(tǒng)從源代碼到成品的流水線當(dāng)你的項(xiàng)目只有一個(gè).cpp文件時(shí)手動(dòng)在命令行輸入g main.cpp -o main很簡(jiǎn)單。但如果項(xiàng)目有幾十上百個(gè)文件相互之間有依賴(lài)關(guān)系每次編譯都手動(dòng)輸入命令就太痛苦了。構(gòu)建系統(tǒng)就是用來(lái)管理這個(gè)復(fù)雜過(guò)程的。簡(jiǎn)單腳本對(duì)于小型項(xiàng)目寫(xiě)一個(gè)Makefile配合make命令或build.bat/build.sh批處理腳本就足夠了?,F(xiàn)代構(gòu)建工具對(duì)于中型以上項(xiàng)目可以考慮CMake。它是一個(gè)跨平臺(tái)的構(gòu)建系統(tǒng)生成器。你寫(xiě)一個(gè)聲明式的CMakeLists.txt文件CMake會(huì)根據(jù)這個(gè)文件為你生成對(duì)應(yīng)平臺(tái)的原生構(gòu)建文件如Windows的Visual Studio項(xiàng)目文件.sln或Linux的Makefile。學(xué)習(xí)CMake是現(xiàn)代C開(kāi)發(fā)的必備技能之一本指南在VSCode配置部分會(huì)初步涉及。3. 方案一Windows平臺(tái)一站式方案——Visual Studio 2022這是最“傻瓜式”但也是最強(qiáng)大的入門(mén)方式。Visual Studio Community版本對(duì)個(gè)人開(kāi)發(fā)者、開(kāi)源項(xiàng)目和學(xué)生免費(fèi)功能幾乎沒(méi)有縮水。3.1 下載與安裝訪問(wèn)官網(wǎng)搜索“Visual Studio 2022 Community”進(jìn)入微軟官方下載頁(yè)面。運(yùn)行安裝程序下載的是一個(gè)很小的引導(dǎo)程序。運(yùn)行后你會(huì)看到“工作負(fù)載”選擇界面。這是關(guān)鍵一步選擇工作負(fù)載勾選“使用C的桌面開(kāi)發(fā)”。這個(gè)工作負(fù)載包含了我們需要的所有東西MSVC編譯器、Windows SDK、調(diào)試器、以及基本的IDE功能。安裝細(xì)節(jié)在右側(cè)的“安裝詳細(xì)信息”中我建議確保以下組件被選中MSVC v143 - VS 2022 C x64/x86 生成工具這是核心編譯器Windows 10/11 SDK開(kāi)發(fā)Windows程序所需的庫(kù)和頭文件C CMake 工具為后續(xù)使用CMake做準(zhǔn)備C 分析工具性能分析可選但推薦安裝位置默認(rèn)安裝在C盤(pán)即可。如果C盤(pán)空間緊張可以修改“安裝位置”但請(qǐng)注意“下載緩存”和“共享組件”可能仍會(huì)占用C盤(pán)空間。點(diǎn)擊“安裝”等待下載和安裝完成耗時(shí)較長(zhǎng)取決于網(wǎng)速。3.2 創(chuàng)建并運(yùn)行你的第一個(gè)C項(xiàng)目安裝完成后啟動(dòng)Visual Studio。創(chuàng)建新項(xiàng)目點(diǎn)擊“創(chuàng)建新項(xiàng)目”。在模板選擇中搜索“控制臺(tái)”選擇“控制臺(tái)應(yīng)用”模板語(yǔ)言選擇C。點(diǎn)擊“下一步”。配置項(xiàng)目給你的項(xiàng)目起個(gè)名字比如HelloWorld選擇存放位置。注意“解決方案名稱(chēng)”默認(rèn)和項(xiàng)目名一樣可以先不管。點(diǎn)擊“創(chuàng)建”。理解項(xiàng)目結(jié)構(gòu)VS會(huì)自動(dòng)為你生成一個(gè)解決方案.sln文件和一個(gè)項(xiàng)目.vcxproj文件。在“解決方案資源管理器”中你會(huì)看到HelloWorld.cpp文件里面已經(jīng)有一段輸出“Hello World”的代碼。編譯與運(yùn)行點(diǎn)擊工具欄上綠色的“本地Windows調(diào)試器”按鈕或按F5。VS會(huì)先編譯生成然后運(yùn)行你的程序。你會(huì)看到一個(gè)黑色的控制臺(tái)窗口彈出顯示“Hello World!”然后一閃而過(guò)。這是因?yàn)槌绦驁?zhí)行完就退出了。讓窗口停留為了讓窗口不立即關(guān)閉可以在return 0;語(yǔ)句前加上一行代碼system(“pause”);。但注意system(“pause”)不是標(biāo)準(zhǔn)C且有一定安全風(fēng)險(xiǎn)僅用于學(xué)習(xí)演示。更好的方法是在VS中運(yùn)行時(shí)不按F5調(diào)試運(yùn)行而按Ctrl F5開(kāi)始執(zhí)行不調(diào)試這樣程序運(yùn)行完后會(huì)提示“按任意鍵繼續(xù)…”。3.3 實(shí)操心得與避坑指南關(guān)于“error: microsoft visual c 14.0 or greater is required”這個(gè)錯(cuò)誤不是在Visual Studio IDE里遇到的而是在其他場(chǎng)景比如用pip安裝某些Python包它們包含需要編譯的C擴(kuò)展時(shí)。這個(gè)錯(cuò)誤提示你需要安裝Visual C的可再發(fā)行組件包或生成工具。解決方法是訪問(wèn)微軟官網(wǎng)搜索“Microsoft Visual C Redistributable”下載并安裝最新版本通常是x64和x86都裝。如果還不行可能需要安裝“Visual Studio Build Tools”它只包含編譯器工具鏈沒(méi)有IDE。項(xiàng)目平臺(tái)配置新建項(xiàng)目時(shí)注意工具欄上的“解決方案平臺(tái)”下拉菜單默認(rèn)可能是x8632位。如果你的系統(tǒng)是64位并且沒(méi)有特殊兼容性要求建議選擇x64以充分利用內(nèi)存和性能。你可以在“項(xiàng)目” - “屬性” - “配置屬性” - “高級(jí)”中設(shè)置“目標(biāo)平臺(tái)”。IntelliSense智能感知有時(shí)抽風(fēng)如果代碼提示、跳轉(zhuǎn)定義突然失效可以嘗試1) 關(guān)閉解決方案再重新打開(kāi)2) 刪除項(xiàng)目目錄下的.vs隱藏文件夾關(guān)閉VS后操作3) 通過(guò)“視圖” - “命令窗口”打開(kāi)命令窗口輸入Edit.DeleteIntelliSenseCache并回車(chē)然后重啟VS。4. 方案二跨平臺(tái)輕量方案——VSCode MinGW-w64/Clang這套方案更靈活讓你更貼近底層的編譯過(guò)程適合想深入理解工具鏈的初學(xué)者以及需要跨平臺(tái)工作的開(kāi)發(fā)者。4.1 第一步安裝編譯器以Windows MinGW-w64為例我們不使用臃腫的MinGW安裝器而是直接獲取純凈的MinGW-w64構(gòu)建。下載訪問(wèn) MinGW-w64官網(wǎng) 或更直接的從 SourceForge 下載預(yù)構(gòu)建的工具鏈。對(duì)于64位Windows我推薦下載x86_64-posix-seh版本的壓縮包。posix和seh是線程模型和異常處理模型對(duì)于初學(xué)者這個(gè)組合兼容性較好。解壓將下載的.7z或.zip文件解壓到一個(gè)沒(méi)有中文和空格的路徑下例如D:\DevTools\mingw64。添加環(huán)境變量這是最關(guān)鍵的一步讓系統(tǒng)能在任何地方找到g命令。右鍵點(diǎn)擊“此電腦” - “屬性” - “高級(jí)系統(tǒng)設(shè)置” - “環(huán)境變量”。在“系統(tǒng)變量”或“用戶(hù)變量”中找到Path變量雙擊編輯。點(diǎn)擊“新建”添加你的MinGW-w64的bin文件夾的完整路徑例如D:\DevTools\mingw64\bin。重要確保將這個(gè)新建項(xiàng)上移到列表頂部或者至少放在其他可能包含舊版本g的路徑之前。驗(yàn)證安裝打開(kāi)一個(gè)新的命令提示符CMD或PowerShell窗口輸入以下命令g --version gdb --version如果正確顯示了GCC和GDB的版本信息說(shuō)明編譯器安裝成功。macOS用戶(hù)更簡(jiǎn)單打開(kāi)終端安裝Xcode Command Line Tools即可命令xcode-select --install它自帶了Clang編譯器。Linux用戶(hù)使用包管理器安裝例如Ubuntu/Debiansudo apt install build-essential gdb。4.2 第二步安裝并配置VSCode安裝VSCode從官網(wǎng)下載安裝過(guò)程簡(jiǎn)單。安裝必要擴(kuò)展打開(kāi)VSCode點(diǎn)擊左側(cè)活動(dòng)欄的擴(kuò)展圖標(biāo)或按CtrlShiftX搜索并安裝以下擴(kuò)展C/C(Microsoft)提供代碼智能感知、調(diào)試等功能。Code Runner(Jun Han)可以快速運(yùn)行單文件代碼非常方便。CMake Tools(Microsoft)如果你打算使用CMake這個(gè)擴(kuò)展必不可少。配置C/C擴(kuò)展這是配置的核心目的是告訴VSCode你的編譯器在哪里以及使用哪些標(biāo)準(zhǔn)。在你的項(xiàng)目文件夾下例如D:\Projects\MyCpp用VSCode打開(kāi)該文件夾。按CtrlShiftP打開(kāi)命令面板輸入C/C: Edit Configurations (UI)并選擇。這會(huì)打開(kāi)一個(gè)圖形化配置界面。主要配置兩項(xiàng)編譯器路徑點(diǎn)擊下拉箭頭VSCode通常會(huì)自動(dòng)檢測(cè)到已安裝的編譯器。如果沒(méi)找到就手動(dòng)輸入你的g.exe的完整路徑例如D:\DevTools\mingw64\bin\g.exe。IntelliSense 模式選擇gcc-x64如果你用的是MinGW-w64或clang-x64如果你用的是Clang。C 標(biāo)準(zhǔn)例如c17或c20根據(jù)你的學(xué)習(xí)目標(biāo)選擇。這些設(shè)置會(huì)被保存到項(xiàng)目文件夾下的.vscode/c_cpp_properties.json文件中。你也可以直接編輯這個(gè)JSON文件。4.3 第三步編寫(xiě)、構(gòu)建與調(diào)試4.3.1 單文件項(xiàng)目的快速運(yùn)行對(duì)于單個(gè).cpp文件最簡(jiǎn)單的方式是使用Code Runner擴(kuò)展。新建一個(gè)test.cpp文件寫(xiě)入經(jīng)典代碼。右鍵點(diǎn)擊編輯器選擇“Run Code”或者按擴(kuò)展設(shè)置的快捷鍵默認(rèn)CtrlAltN。程序會(huì)在下方的“輸出”面板中運(yùn)行。但這種方式不適用于需要交互輸入的程序。更好的方式是配置任務(wù)來(lái)構(gòu)建。按CtrlShiftP輸入Tasks: Configure Task選擇Create tasks.json file from template-Others。這會(huì)生成一個(gè).vscode/tasks.json文件。將其內(nèi)容替換為{ “version”: “2.0.0”, “tasks”: [ { “l(fā)abel”: “build with g”, // 任務(wù)名稱(chēng)可自定義 “type”: “shell”, “command”: “g”, “args”: [ “-g”, // 生成調(diào)試信息 “${file}”, // 當(dāng)前活動(dòng)文件 “-o”, // 指定輸出文件名 “${fileDirname}\\${fileBasenameNoExtension}.exe” // 輸出到當(dāng)前目錄同名.exe ], “group”: { “kind”: “build”, “isDefault”: true // 設(shè)為默認(rèn)生成任務(wù) }, “presentation”: { “echo”: true, “reveal”: “always”, // 總是在終端中顯示輸出 “focus”: false, “panel”: “shared” }, “problemMatcher”: “$gcc” } ] }保存后打開(kāi)你的.cpp文件按CtrlShiftB就會(huì)執(zhí)行這個(gè)構(gòu)建任務(wù)在終端編譯并生成可執(zhí)行文件。然后你可以在終端手動(dòng)運(yùn)行生成的.exe文件。4.3.2 配置調(diào)試VSCode的調(diào)試功能非常強(qiáng)大。點(diǎn)擊左側(cè)活動(dòng)欄的“運(yùn)行和調(diào)試”圖標(biāo)或按CtrlShiftD然后點(diǎn)擊“創(chuàng)建一個(gè) launch.json 文件”。選擇環(huán)境C (GDB/LLDB)。這會(huì)在.vscode文件夾下生成launch.json。找到“program”配置項(xiàng)將其修改為你的可執(zhí)行文件路徑例如“${fileDirname}\\${fileBasenameNoExtension}.exe”。確?!癿iDebuggerPath”指向你的gdb.exe路徑例如D:\\DevTools\\mingw64\\bin\\gdb.exe。在你的代碼中打上斷點(diǎn)點(diǎn)擊行號(hào)左側(cè)然后按F5開(kāi)始調(diào)試。你可以查看變量、調(diào)用堆棧單步執(zhí)行代碼。4.4 常見(jiàn)問(wèn)題與排查技巧實(shí)錄問(wèn)題VSCode提示“找不到頭文件”或“檢測(cè)到 #include 錯(cuò)誤”。排查首先檢查c_cpp_properties.json中的compilerPath是否正確。然后在VSCode中按CtrlShiftP運(yùn)行C/C: Log Diagnostics查看編譯器被正確識(shí)別和其包含路徑。有時(shí)需要手動(dòng)在c_cpp_properties.json的includePath或compilerArgs中添加路徑。技巧對(duì)于標(biāo)準(zhǔn)庫(kù)頭文件只要compilerPath正確一般無(wú)需手動(dòng)添加。對(duì)于第三方庫(kù)如OpenCV才需要手動(dòng)添加其include目錄。問(wèn)題按CtrlShiftB構(gòu)建時(shí)終端一閃而過(guò)或提示“任務(wù)…已終止退出代碼為 1”。排查這通常是編譯錯(cuò)誤。不要依賴(lài)一閃而過(guò)的終端。修改tasks.json在args中添加-Wall -Wextra來(lái)開(kāi)啟更多警告幫助發(fā)現(xiàn)潛在問(wèn)題。同時(shí)確?!皃resentation”中的“reveal”設(shè)置為“always”這樣無(wú)論編譯成功與否終端都會(huì)保持打開(kāi)顯示g的具體錯(cuò)誤信息。問(wèn)題調(diào)試時(shí)無(wú)法輸入程序需要cin。解決默認(rèn)的調(diào)試控制臺(tái)不支持交互輸入。需要修改launch.json找到“externalConsole”選項(xiàng)將其設(shè)置為true。這樣調(diào)試時(shí)會(huì)彈出一個(gè)外部控制臺(tái)窗口可以在那里進(jìn)行輸入。問(wèn)題使用Code Runner運(yùn)行程序窗口瞬間關(guān)閉。解決這是Code Runner的默認(rèn)行為。有兩種方法1) 在代碼末尾return 0;之前添加system(“pause”);僅限Windows且不推薦用于正式項(xiàng)目。2) 修改Code Runner的配置。在VSCode設(shè)置中搜索Code-runner: Run In Terminal并勾選這樣程序會(huì)在集成終端中運(yùn)行執(zhí)行完畢后終端會(huì)保持打開(kāi)。這是更好的方式。5. 進(jìn)階配置使用CMake管理多文件項(xiàng)目當(dāng)你的項(xiàng)目成長(zhǎng)包含多個(gè).cpp和.h文件時(shí)手動(dòng)寫(xiě)g命令鏈接所有文件變得非常麻煩。CMake可以?xún)?yōu)雅地解決這個(gè)問(wèn)題。5.1 最簡(jiǎn)單的CMake項(xiàng)目結(jié)構(gòu)假設(shè)你有以下項(xiàng)目結(jié)構(gòu)MyProject/ ├── CMakeLists.txt ├── include/ │ └── utils.h └── src/ ├── main.cpp └── utils.cpp編寫(xiě)CMakeLists.txt在項(xiàng)目根目錄創(chuàng)建這個(gè)文件。cmake_minimum_required(VERSION 3.10) # 指定CMake最低版本 project(MyProject VERSION 1.0) # 定義項(xiàng)目名稱(chēng)和版本 set(CMAKE_CXX_STANDARD 17) # 設(shè)置C標(biāo)準(zhǔn)為C17 set(CMAKE_CXX_STANDARD_REQUIRED ON) # 要求編譯器必須支持該標(biāo)準(zhǔn) # 將頭文件目錄添加到包含路徑 include_directories(${PROJECT_SOURCE_DIR}/include) # 添加可執(zhí)行文件目標(biāo)并指定其依賴(lài)的源文件 add_executable(my_app src/main.cpp src/utils.cpp) # 如果源文件很多可以用 aux_source_directory(. DIR_SRCS) 來(lái)收集生成構(gòu)建系統(tǒng)在項(xiàng)目根目錄打開(kāi)終端或VSCode的終端。Windows (MinGW):mkdir build cd build cmake -G “MinGW Makefiles” ..Linux/macOS:mkdir build cd build cmake ..這會(huì)在build目錄下生成對(duì)應(yīng)的構(gòu)建文件如Makefile。編譯項(xiàng)目在build目錄下執(zhí)行Windows (MinGW):mingw32-make(或make如果已配置)Linux/macOS:make編譯完成后會(huì)在build目錄下生成可執(zhí)行文件my_app或my_app.exe。5.2 在VSCode中集成CMake安裝了“CMake Tools”擴(kuò)展后VSCode對(duì)CMake的支持會(huì)變得非常友好。用VSCode打開(kāi)包含CMakeLists.txt的文件夾。底部狀態(tài)欄會(huì)出現(xiàn)CMake的相關(guān)按鈕。點(diǎn)擊“選擇工具包”選擇你的編譯器如GCC x.x.x…。點(diǎn)擊“選擇配置”通常選擇Debug帶調(diào)試信息或Release優(yōu)化發(fā)布。點(diǎn)擊“配置”按鈕齒輪圖標(biāo)CMake Tools會(huì)自動(dòng)執(zhí)行cmake配置步驟。配置成功后點(diǎn)擊“生成”按鈕扳手圖標(biāo)進(jìn)行編譯點(diǎn)擊“調(diào)試”按鈕播放帶蟲(chóng)子的圖標(biāo)或“運(yùn)行”按鈕播放圖標(biāo)來(lái)啟動(dòng)程序。實(shí)操心得使用CMake后項(xiàng)目結(jié)構(gòu)清晰跨平臺(tái)編譯方便。初期學(xué)習(xí)CMake語(yǔ)法有點(diǎn)成本但絕對(duì)是值得的投資。對(duì)于更復(fù)雜的項(xiàng)目CMake可以方便地引入第三方庫(kù)如find_package命令。把build目錄加入到.gitignore文件中避免將生成的中間文件提交到代碼倉(cāng)庫(kù)。6. 環(huán)境驗(yàn)證與后續(xù)學(xué)習(xí)路徑搭建好環(huán)境后寫(xiě)個(gè)稍微復(fù)雜點(diǎn)的程序驗(yàn)證一下。比如寫(xiě)一個(gè)簡(jiǎn)單的計(jì)算器或者讀取一個(gè)文本文件并統(tǒng)計(jì)行數(shù)。確保編譯、運(yùn)行、調(diào)試整個(gè)流程都走通了。至此你的C“工作臺(tái)”已經(jīng)搭建完畢。無(wú)論你選擇了Visual Studio的“豪華套餐”還是VSCode編譯器的“自助餐”都已經(jīng)具備了開(kāi)始C之旅的所有基礎(chǔ)條件。接下來(lái)你就可以專(zhuān)注于C語(yǔ)言本身的學(xué)習(xí)了從變量、循環(huán)、函數(shù)到類(lèi)、模板、標(biāo)準(zhǔn)庫(kù)。記住編程環(huán)境是工具熟練使用它讓它成為你的助力而不是障礙。當(dāng)你在學(xué)習(xí)中遇到編譯錯(cuò)誤時(shí)不要慌張仔細(xì)閱讀錯(cuò)誤信息它通常已經(jīng)告訴了你問(wèn)題所在。多動(dòng)手多嘗試這個(gè)環(huán)境會(huì)陪你走過(guò)從“Hello World”到復(fù)雜項(xiàng)目的整個(gè)旅程。