{"id":27606,"date":"2021-02-17T23:42:46","date_gmt":"2021-02-17T23:42:46","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/cppblog\/?p=27606"},"modified":"2023-07-18T18:09:58","modified_gmt":"2023-07-18T18:09:58","slug":"now-announcing-makefile-support-in-visual-studio-code","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/now-announcing-makefile-support-in-visual-studio-code\/","title":{"rendered":"Now announcing: Makefile support in Visual Studio Code!"},"content":{"rendered":"<p><div class=\"alert alert-primary\">This blog post has been updated with the latest Makefile Tools experience as of July 18th, 2023<\/div><\/p>\n<p>We are excited to announce a brand-new extension for building and debugging Makefile projects in Visual Studio Code: <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-vscode.makefile-tools\">Makefile Tools (preview)<\/a>! The extension is in pilot stages, but we\u2019ve curated a <a href=\"https:\/\/github.com\/microsoft\/vscode-makefile-tools\/blob\/main\/docs\/repositories.md\">list of over 70 popular opensource Makefile projects<\/a> that work with Makefile Tools. Give it a try and let us know what you think!<\/p>\n<h2>Installing the extension<\/h2>\n<p>First, install the <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-vscode.makefile-tools\">Makefile Tools extension<\/a> from the VS Code Marketplace.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-tools-marketplace.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-27626\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-tools-marketplace.png\" alt=\"Image of Makefile Tools extension in VS Code Marketplace\" width=\"1562\" height=\"370\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-tools-marketplace.png 1562w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-tools-marketplace-300x71.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-tools-marketplace-1024x243.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-tools-marketplace-768x182.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-tools-marketplace-1536x364.png 1536w\" sizes=\"(max-width: 1562px) 100vw, 1562px\" \/><\/a><\/p>\n<h2>Activating the extension<\/h2>\n<p>Once the extension is installed, it will activate when it finds a Makefile in your\u00a0project\u2019s root folder. If your project\u2019s Makefile is not in the root folder, you can use the\u00a0<strong>Makefile Path<\/strong> setting to instruct the extension where to find it. Update <strong>Makefile Path<\/strong> by going to\u00a0<strong>File<\/strong>\u00a0&gt;\u00a0<strong>Preferences<\/strong>\u00a0&gt;\u00a0<strong>Settings<\/strong>\u00a0and then selecting <strong>makefile<\/strong> under <strong>Extensions.<\/strong><\/p>\n<p><strong><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile.makefilepath.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-27611\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile.makefilepath.png\" alt=\"Image showing the Makefile Tools extension's Makefile Path property in VS Code settings\" width=\"1238\" height=\"241\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile.makefilepath.png 1238w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile.makefilepath-300x58.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile.makefilepath-1024x199.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile.makefilepath-768x150.png 768w\" sizes=\"(max-width: 1238px) 100vw, 1238px\" \/><\/a> <\/strong><\/p>\n<p>After updating <strong>Makefile Path<\/strong>, type \u201cmakefile\u201d into the Command Palette and run a Makefile Tools command to re-activate the extension.<\/p>\n<h2>Configuring your project<\/h2>\n<p>By default, the extension will attempt to use a\u00a0make\u00a0program that resides within your $PATH to configure the project. If your make.exe is not in your $PATH, update the <strong>Make Path <\/strong>setting by going to\u00a0<strong>File<\/strong>\u00a0&gt;\u00a0<strong>Preferences<\/strong>\u00a0&gt;\u00a0<strong>Settings<\/strong>\u00a0and then selecting <strong>makefile<\/strong> under <strong>Extensions. <\/strong>The<strong> Make Path<\/strong> setting tells the extension where to find your make executable.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile.makepath.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-27612\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile.makepath.png\" alt=\"Image showing the Makefile Tools extension's Make Path property in VS Code settings\" width=\"1230\" height=\"213\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile.makepath.png 1230w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile.makepath-300x52.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile.makepath-1024x177.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile.makepath-768x133.png 768w\" sizes=\"(max-width: 1230px) 100vw, 1230px\" \/><\/a><\/p>\n<p><span class=\"TextRun SCXW14535155 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW14535155 BCX8\">You can also specify the make Path <\/span><span class=\"NormalTextRun SCXW14535155 BCX8\">by selecting the <\/span><span class=\"NormalTextRun SCXW14535155 BCX8\">pencil icon<\/span><span class=\"NormalTextRun SCXW14535155 BCX8\"> to the right of the <\/span><\/span><span class=\"TextRun SCXW14535155 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW14535155 BCX8\">Make<\/span><\/span><span class=\"TextRun SCXW14535155 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW14535155 BCX8\"> button in the extension\u2019s side panel.<\/span><\/span><span class=\"EOP SCXW14535155 BCX8\" data-ccp-props=\"{&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/make-icon-v2.png\"><img decoding=\"async\" class=\"wp-image-32608 aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/make-icon-v2.png\" alt=\"Icon to update make path\" width=\"524\" height=\"267\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/make-icon-v2.png 603w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/make-icon-v2-300x153.png 300w\" sizes=\"(max-width: 524px) 100vw, 524px\" \/><\/a><\/p>\n<p>Once your make path is properly set, accept the prompt to allow Makefile Tools to configure IntelliSense.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-allow-intellisense.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-27623\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-allow-intellisense.png\" alt=\"Image showing pop-up notification for allowing the Makefile Tools extension to configure IntelliSense\" width=\"1104\" height=\"269\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-allow-intellisense.png 1104w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-allow-intellisense-300x73.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-allow-intellisense-1024x250.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-allow-intellisense-768x187.png 768w\" sizes=\"(max-width: 1104px) 100vw, 1104px\" \/><\/a><\/p>\n<p>If you don&#8217;t see that notification, or you accidentally dismissed it, you can grant Makefile Tools permission to configure IntelliSense by running\u00a0\u201c<strong>C\/C++: Change Configuration Provider\u201d<\/strong>\u00a0from the Command Palette and selecting <strong>Makefile Tools<\/strong>.<\/p>\n<p>Now you\u2019re ready to configure your project! If you normally run\u00a0make from the command line without passing it any additional arguments, you shouldn&#8217;t need to do anything else at this point.<\/p>\n<p>If you regularly pass additional arguments to\u00a0make, use the\u00a0Makefile Tools\u2019 <strong>Configurations<\/strong> setting (<strong>makefile.configurations<\/strong>\u00a0in settings.json) to specify those arguments. Makefile.configurations is an array of configuration objects, each with a <strong>name<\/strong> and <strong>makeArgs<\/strong> property that holds the arguments to pass to make. To help you out, we\u2019ve <a href=\"https:\/\/github.com\/microsoft\/vscode-makefile-tools\/blob\/main\/docs\/repositories.md\">documented the correct configurations<\/a> for over 70 popular open-source repositories. For example, to create a configuration for <a href=\"https:\/\/github.com\/littlekernel\/lk\">littlekernel<\/a>, where you need to pass \u201cPROJECT=armemu-test\u201d to make, your settings.json would look something like this:<\/p>\n<pre class=\"prettyprint\">\"makefile.configurations\": [\r\n    {\r\n        \"name\": \"littlekernel\",\r\n        \"makeArgs\": [\"PROJECT=armemu-test\"]\r\n    }\r\n]<\/pre>\n<p>To choose the configuration for a project, select the Makefile Tools icon in the left explorer menu.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-explorer-icon.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-27619\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-explorer-icon.png\" alt=\"Image showing the Makefile Tools icon in the explorer menu on the left\" width=\"2871\" height=\"2078\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-explorer-icon.png 2871w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-explorer-icon-300x217.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-explorer-icon-1024x741.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-explorer-icon-768x556.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-explorer-icon-1536x1112.png 1536w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-explorer-icon-2048x1482.png 2048w\" sizes=\"(max-width: 2871px) 100vw, 2871px\" \/><\/a><\/p>\n<p>Hover over <strong>Configuration<\/strong> and select the pencil icon to choose a configuration for your project.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/Configuration-icon.png\"><img decoding=\"async\" class=\"size-full wp-image-32601 aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/Configuration-icon.png\" alt=\"Icon to select configuration for makefile\" width=\"541\" height=\"301\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/Configuration-icon.png 541w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/Configuration-icon-300x167.png 300w\" sizes=\"(max-width: 541px) 100vw, 541px\" \/><\/a><\/p>\n<p>If you didn\u2019t define any configurations in<strong> makefile.configurations<\/strong>, the extension will automatically select a default one.<\/p>\n<h2>Building targets<\/h2>\n<p>After configuring your project, you\u2019re ready to build. Choose a Build target by selecting the pencil icon that appears on hover.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/Build-icon.png\"><img decoding=\"async\" class=\"size-full wp-image-32602 aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/Build-icon.png\" alt=\"Icon to select build target\" width=\"382\" height=\"256\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/Build-icon.png 382w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/Build-icon-300x201.png 300w\" sizes=\"(max-width: 382px) 100vw, 382px\" \/><\/a><\/p>\n<p>Then choose from the list of targets found in your project\u2019s Makefile.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-list-build-targets.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-27620\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-list-build-targets.png\" alt=\"Image showing a list of build targets found in the project's Makefile, returned by the Makefile Tools extension\" width=\"3240\" height=\"2075\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-list-build-targets.png 3240w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-list-build-targets-300x192.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-list-build-targets-1024x656.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-list-build-targets-768x492.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-list-build-targets-1536x984.png 1536w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-list-build-targets-2048x1312.png 2048w\" sizes=\"(max-width: 3240px) 100vw, 3240px\" \/><\/a><\/p>\n<p>After setting the Build target, click the Build icon.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/Build-icon-v2.png\"><img decoding=\"async\" class=\"size-full wp-image-32603 aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/Build-icon-v2.png\" alt=\"Icon to build project\" width=\"391\" height=\"259\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/Build-icon-v2.png 391w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/Build-icon-v2-300x199.png 300w\" sizes=\"(max-width: 391px) 100vw, 391px\" \/><\/a><\/p>\n<h2>Debugging and running targets<\/h2>\n<p>To run\/debug your program, use the pencil icon to select a Launch target. A configuration for the selected target will be added to the\u00a0<strong>makefile.launchConfigurations\u00a0<\/strong>setting. If you need to pass additional arguments to your targets, add the <strong>binaryArgs<\/strong>\u00a0property to the target\u2019s configuration in <strong>makefile.launchConfigurations<\/strong>. You can also set <strong>MIMode<\/strong>, <strong>miDebuggerPath<\/strong>, and <strong>stopAtEntry<\/strong> in <strong>makefile.launchConfigurations<\/strong>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/launch-target-icon.png\"><img decoding=\"async\" class=\"size-full wp-image-32604 aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/launch-target-icon.png\" alt=\"Icon to launch target\" width=\"390\" height=\"214\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/launch-target-icon.png 390w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/launch-target-icon-300x165.png 300w\" sizes=\"(max-width: 390px) 100vw, 390px\" \/><\/a><\/p>\n<p>Once the Launch target is set, select the Debug icon to start a debugging session.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/debug-icon.png\"><img decoding=\"async\" class=\"size-full wp-image-32605 aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/debug-icon.png\" alt=\"icon to debug project\" width=\"388\" height=\"220\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/debug-icon.png 388w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/debug-icon-300x170.png 300w\" sizes=\"(max-width: 388px) 100vw, 388px\" \/><\/a><\/p>\n<p>To run the program without debugging, select the Run in Terminal button.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/Run-icon.png\"><img decoding=\"async\" class=\"size-full wp-image-32606 aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/Run-icon.png\" alt=\"Icon to run project\" width=\"390\" height=\"217\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/Run-icon.png 390w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/Run-icon-300x167.png 300w\" sizes=\"(max-width: 390px) 100vw, 390px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2>Makefile Tools commands<\/h2>\n<p>You can find all the Makefile Tools commands by opening the Command Palette and typing &#8220;makefile&#8221;. For your convenience, there are commands for building clean and building ALL that you can run without changing the Build target.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-commands-1.png\"><img decoding=\"async\" class=\"size-full wp-image-32607 aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-commands-1.png\" alt=\"Makefile command dropdown\n\" width=\"469\" height=\"358\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-commands-1.png 469w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2021\/02\/makefile-commands-1-300x229.png 300w\" sizes=\"(max-width: 469px) 100vw, 469px\" \/><\/a><\/p>\n<h2>Makefile Tools settings<\/h2>\n<p>To find all Makefile Tools settings, go to\u00a0<strong>File<\/strong>\u00a0&gt;\u00a0<strong>Preferences<\/strong>\u00a0&gt;\u00a0<strong>Settings<\/strong>\u00a0and then select <strong>makefile<\/strong> under <strong>Extensions.<\/strong> The settings you\u2019ll probably use the most are:<\/p>\n<ul>\n<li>configurations (tells the extension which arguments to pass to make when configuring your project)<\/li>\n<li>defaultLaunchConfiguration (global debugger settings)<\/li>\n<li>launchConfigurations (debugger settings for specific launch targets)<\/li>\n<li>makePath (path to your make executable)<\/li>\n<li>makefilePath (path to project\u2019s Makefile)<\/li>\n<li>buildLog (alternative to dry-run)Makefile Tools settings<\/li>\n<\/ul>\n<h2>Other features<\/h2>\n<p>Since releasing this extension, we have developed other features to make your life when working with Makefiles easier. To learn more about these, please see <a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/makefile-tools-december-2021-update-problem-matchers-and-compilation-database-generation\/\">this blog post for problem matching and compilation database generation<\/a> and <a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/whats-new-for-makefile-tools-in-vs-code-version-0-7-0-variable-expansion-and-more\/\">this blog post for variable expansion<\/a>.<\/p>\n<h2>Known limitations<\/h2>\n<p>This is a preview release of Makefile Tools, and although we\u2019ve tested it with over 70 repositories, you may need to do some fiddling to configure your project for the first time. Please feel free to submit a PR to <a href=\"https:\/\/github.com\/microsoft\/vscode-makefile-tools\/blob\/main\/docs\/repositories.md\">this document<\/a>, adding your repository and its correct configuration settings, to help anyone who might be trying to build the same project.<\/p>\n<p>Check out our <a href=\"https:\/\/github.com\/microsoft\/vscode-makefile-tools\/blob\/main\/docs\/troubleshooting.md\">troubleshooting guide<\/a> for a list of known limitations and work-arounds.<\/p>\n<h2>What do you think?<\/h2>\n<p>Download the <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-vscode.makefile-tools\">Makefile Tools extension<\/a> for Visual Studio Code\u00a0today, give it a try, and let us know what you think. If you run into any issues, or have any suggestions, please report them in the <a href=\"https:\/\/github.com\/microsoft\/vscode-makefile-tools\/issues\">Issues section of our GitHub repository<\/a>.<\/p>\n<p>We can be reached via the comments below or in email at\u00a0<a href=\"mailto:visualcpp@microsoft.com\">visualcpp@microsoft.com<\/a>. You can also find our team on Twitter at\u00a0<a href=\"https:\/\/twitter.com\/visualc\">@<\/a><a href=\"https:\/\/twitter.com\/visualc\">VisualC<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We are excited to announce a brand-new extension for building and debugging Makefile projects in Visual Studio Code: Makefile Tools (preview)! The extension is in pilot stages, but we\u2019ve curated a list of over 70 popular opensource Makefile projects that work with Makefile Tools. Give it a try and let us know what you think! [&hellip;]<\/p>\n","protected":false},"author":27203,"featured_media":35994,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[270,1,279,275],"tags":[],"class_list":["post-27606","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-announcement","category-cplusplus","category-linux","category-visual-studio-code"],"acf":[],"blog_post_summary":"<p>We are excited to announce a brand-new extension for building and debugging Makefile projects in Visual Studio Code: Makefile Tools (preview)! The extension is in pilot stages, but we\u2019ve curated a list of over 70 popular opensource Makefile projects that work with Makefile Tools. Give it a try and let us know what you think! [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/27606","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/users\/27203"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=27606"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/27606\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media\/35994"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media?parent=27606"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=27606"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=27606"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}