VSC新东西:Makefile工具扩展

今天,我们非常高兴地宣布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按钮进行调试。

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多个流行的开源工程,但是对于你自己的工程,你可能还是得花写时间来做一些配置工作。如果你成功地完成了配置,欢迎分享给正在为同一个工程配置发愁的人。

总结

这样,咱们内部搞个田忌赛马:Visual Studio和Visual Studio Code开发团队,请各自开始你们的表演,看看咱们广大开发者到底跟谁走。(狗头)

最后

Microsoft Visual C++团队的博客是我非常喜欢的博客之一,里面有很多关于Visual C++的知识和最新的开发进展。大浪淘沙,如果你对Visual C++这门古老的技术还是那么感兴趣,则可以经常去他们那(或者我这)逛逛。

本文来自:《Now announcing: Makefile support in Visual Studio Code!》

ozabc