官宣
今天,我們非常高興地宣布Visual Studio Code中的一項全新擴充:Makefile工具(預覽版),此工具主要用于在Visual Studio Code內建開發環境中建構和調試Makefile工程。目前,此擴充還處于測試階段,但是,我們内部測試了70多個流行開源的Makefile工程,顯示出此擴充工具可以很好地和它們一起工作。那大家有興趣的話,就試試看呗。
安裝擴充
首先,需要在Visual Studio Code的Marketplace中安裝此Makefile工具擴充,如下圖所示:
激活擴充
擴充安裝完成後,當它在工程的根目錄發現有Makefile檔案時會自動激活。如果你的工程的Makefile不在根目錄中,則你可以通過設定Makefile Path參數來指定Makefile的路徑,這樣擴充就可以識别到Makefile檔案了。下圖顯示了在File > Preferences > Settings中設定Makefile Path的界面:
當Makefile Path設定完成後,在指令行輸入”makefile”就可以執行MakeFile工具指令并激活擴充。
配置你的工程
在預設情況下,擴充将會提示你使用環境變量$PATH中的make.exe程式來配置工程。如果你的make.exe不在$PATH環境變量中,則可以在File > Preferences > Settings中設定Make Path這一參數。Make Path設定将會告訴擴充從哪裡去尋找需要的make.exe程式,設定Make Path界面如下圖所示:
當make.exe的路徑設定完成後,在彈出的提示框中選擇允許Makefile工具來配置IntelliSense,如下圖所示:
如果你沒有看到這個提示,或者你點選了錯誤的按鈕,沒關系,你可以在指令行中輸入:C/C++: Change Configuration Provider,然後選擇Makefile Tools。
現在,工程的配置工作已經全部完成了。如果你在指令行下執行不帶任何參數的make指令,那麼擴充将會如預期般的正常工作,不需要做額外的設定工作。
如果你會向make指令中傳遞一些額外的參數,則需要使用Makefile工具的Configurations設定(settings.json配置檔案中的makefile.configurations)來指定這些參數。Makefile.configurations是一個配置參數的數組,每一行都包含傳遞給make的名稱和參數值。為了便于參考,我們在幫助文檔中添加了70多個流行開源工程對應的配置參數值。例如,為了建立開源工程littlekernel的配置,你可以在執行make的傳入“PROJECT=armemu-test”,則你的settings.json将會增加下面的配置項:
可以在左側的Explorer菜單中選擇Makefile Tools圖示以為你的工程選擇對應的配置,如下圖所示:
點選鉛筆圖示可以選擇對應的配置,如下圖所示:
如果你還沒有在makefile.configurations中建立任何配置,則擴充将會為你選擇一個預設的配置。
建構目标
當工程的配置完成之後,你就可以開始進行建構了。點選下圖中的鉛筆圖示可以選擇建構的目标平台,如下圖所示:
然後,從工程的Makefile中解析出來的目标平台清單中選擇你需要的一項,如下圖所示:
當目标平台選擇完畢之後,可以點選Build圖示,如下圖所示:
調試并運作
點選下圖中的鉛筆圖示可以調試或者直接運作建構出來的執行程式。一個為標明目标平台的配置項會被自動加入到
makefile.launchConfigurations配置中。如果你需要傳遞一些額外的參數到執行程式,例如MIMode, miDebuggerPath, stopAtEntry,則可以
makefile.launchConfigurations的目标配置項中添加binaryArgs屬性值,如下圖所示:
當運作目标設定好之後,可以選擇下圖中的Debug按鈕進行調試。
如果你希望不進行調試,而是直接運作目标,則可以點選下圖中的Run圖示:
Makefile Tools支援的指令
通過打開Command Palette并輸入”makefile”,可以檢視擴充支援的所有指令。為了便于使用,我們添加了一些建構清除和建構全部的快捷指令,這樣你就可以直接運作它們,而不需要修改建構目标了,如下圖所示:
Makefile Tools設定
可以前往File > Preferences > Settings并在Extensions下選擇makefile,以檢視Makefile Tools是所有設定項。大家可能最為常用的選項如下:
> configurations (在配置工程時,用來訓示擴充應該向make傳入哪些參數)
>
defaultLaunchConfiguration (全局調試器設定)
> launchConfigurations (對于特定建構目标的調試設定)
> makePath (make程式的路徑)
> makefilePath (工程Makefile的路徑)
> buildLog (dry-run的另一種方式)
可能存在的局限性
本次釋出時Makefile Tools擴充的預覽版本,雖然我們測試了70多個流行的開源工程,但是對于你自己的工程,你可能還是得花寫時間來做一些配置工作。如果你成功地完成了配置,歡迎分享給正在為同一個工程配置發愁的人。