前言
windows下有很多免費的開發C語言的IDE,比如微軟自家的Visual Studio社區版,開源的code::blocks(自帶mingw)等等,沒必要再單獨下載mingw折騰調試環境搭建,使用現有方案簡單快捷得多,還不容易出錯。而在linux系統下,相關的IDE就少了很多,前面提到的code::blocks是其中之一,但是它的編輯器使用起來卻不太方便,因此還是選擇使用VSCode來搭建調試環境。
1. 安裝官方C/C++擴展
當使用VSCode打開一個C文件時,編輯器會自動提示安裝相應的擴展,當然也可以手動搜索。在主界面按下Ctrl+Shift+X,在搜索欄中輸入"c",出來的第一個即為需要安裝的插件。
2. 修改調試模板文件
想要調試源代碼文件,我們需要創建或者生成tasks.json和launch.json文件,關於如何自動生成這兩個文件,可以參考callback接口(https://www.cnblogs.com/maxiaowei0216/p/12518468.html)中關於調試部分的內容。tasks.json文件幫助我們自動在終端中輸入gcc指令,編譯輸出可運行文件的,而launch.json文件則是啟動gdb程序進行調試的。
對於只有一個c源文件的工程,使用默認的模板文件即可進行調試和運行。但是大部分的工程顯然不可能只有一個源文件,這就需要對tasks.json文件進行修改。
以一個簡單的工程為例,其目錄結構如下圖所示:
其中,hello.c中包含了main函數,在其內部引用了habc.h中聲明的函數,此函數在habc.c中進行定義。那么,由於hello.c中有對habc.c的依賴,需要編譯這兩個源文件。所以在tasks.json中將habc.c加入到需要編譯的文件列表中,其修改后的內容如下:
1 { 2 // See https://go.microsoft.com/fwlink/?LinkId=733558 3 // for the documentation about the tasks.json format 4 "version": "2.0.0", 5 "tasks": [ 6 { 7 "type": "shell", 8 "label": "gcc build active file", 9 "command": "/usr/bin/gcc", 10 "args": [ 11 "-g", 12 "${file}", // -o參數前填入需要編譯的文件 13 "${fileDirname}/habc.c", //編譯habc.c文件 14 "-o", 15 "${fileDirname}/${fileBasenameNoExtension}" 16 ], 17 "options": { 18 "cwd": "/usr/bin" 19 }, 20 "problemMatcher": [ 21 "$gcc" 22 ], 23 "group": "build" 24 } 25 ] 26 }
3. 編譯及調試
按下Ctrl+Shift+B 即會根據tasks.json中的定義進行編譯,如果沒有出錯,隨后即可按下F5進入調試界面。
4. 進階
如果項目很大,有很多的源文件,顯然不可能在tasks.json中為每個源文件添加一行代碼,不僅麻煩還很容易出錯。這時候就可以使用make工具,根據項目中的makelist來有選擇的進行編譯。因此,只需要修改tasks.json,將"command"變量改成make的路徑,"args"中加上其對應的參數即可。由於本人對make還不太熟悉,在此就不進行演示了,僅提供一種思路。