{"id":24889,"date":"2019-08-16T15:45:30","date_gmt":"2019-08-16T15:45:30","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/cppblog\/?p=24889"},"modified":"2019-08-16T15:45:30","modified_gmt":"2019-08-16T15:45:30","slug":"c-cross-platform-development-with-visual-studio-2019-version-16-3-vcpkg-cmake-configuration-remote-headers-and-wsl","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/c-cross-platform-development-with-visual-studio-2019-version-16-3-vcpkg-cmake-configuration-remote-headers-and-wsl\/","title":{"rendered":"C++ Cross-Platform Development with Visual Studio 2019 version 16.3: vcpkg, CMake configuration, remote headers, and WSL"},"content":{"rendered":"<p><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">In Visual Studio 2019 you can target both Windows and Linux from the comfort of a single IDE<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">.\u00a0<\/span><\/span><a class=\"Hyperlink SCXW184084438 BCX0\" href=\"https:\/\/docs.microsoft.com\/en-us\/cpp\/build\/cmake-projects-in-visual-studio?view=vs-2019\" target=\"_blank\" rel=\"noopener noreferrer\"><span class=\"TextRun Underlined SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW184084438 BCX0\">Visual Studio\u2019s native support for CMake<\/span><\/span><\/a><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">\u00a0<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"ContextualSpellingAndGrammarError SCXW184084438 BCX0\">lets<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">\u00a0you<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">\u00a0open any folder containing C++ code and a CMakeLists.txt file\u00a0<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">directly in Visual Studio\u00a0<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">to<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">\u00a0edit, build, and debug your\u00a0<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"SpellingError SCXW184084438 BCX0\">CMake<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">\u00a0project on<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">\u00a0Windows<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">,<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">\u00a0Linux<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">, and\u00a0<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">the\u00a0<\/span><\/span><a class=\"Hyperlink SCXW184084438 BCX0\" href=\"https:\/\/docs.microsoft.com\/en-us\/windows\/wsl\/about\" target=\"_blank\" rel=\"noopener noreferrer\"><span class=\"TextRun Underlined SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW184084438 BCX0\">Windows Subsystem for Linux (WSL)<\/span><\/span><\/a><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">.<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">\u00a0<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">Visual Studio\u2019s\u00a0<\/span><\/span><a class=\"Hyperlink SCXW184084438 BCX0\" href=\"https:\/\/docs.microsoft.com\/en-us\/cpp\/linux\/create-a-new-linux-project?view=vs-2019\" target=\"_blank\" rel=\"noopener noreferrer\"><span class=\"TextRun Underlined SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW184084438 BCX0\">MSBuild-based Linux support<\/span><\/span><\/a><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">\u00a0allows you\u00a0<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">to create a<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">nd debug <\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">console applications<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\"> that execute on a remote Linux system or\u00a0<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun CommentStart SCXW184084438 BCX0\">WSL<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">.<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">\u00a0<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">For\u00a0<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">either<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">\u00a0of these scenarios<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">,<\/span><\/span><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">\u00a0the\u00a0<\/span><\/span><a class=\"Hyperlink SCXW184084438 BCX0\" href=\"https:\/\/docs.microsoft.com\/en-us\/cpp\/linux\/download-install-and-setup-the-linux-development-workload?view=vs-2019\" target=\"_blank\" rel=\"noopener noreferrer\"><span class=\"TextRun Underlined SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW184084438 BCX0\">Linux development with C++ workload<\/span><\/span><\/a><span class=\"TextRun SCXW184084438 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW184084438 BCX0\">\u00a0is required.\u00a0<\/span><\/span><span class=\"EOP SCXW184084438 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><span class=\"TextRun SCXW176365456 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW176365456 BCX0\">Visual Studio 2019 version 16.3\u00a0<\/span><\/span><span class=\"TextRun SCXW176365456 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun CommentStart SCXW176365456 BCX0\">Preview\u00a0<\/span><\/span><span class=\"TextRun SCXW176365456 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW176365456 BCX0\">2\u00a0<\/span><\/span><span class=\"TextRun SCXW176365456 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW176365456 BCX0\">introduces\u00a0<\/span><\/span><span class=\"TextRun SCXW176365456 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW176365456 BCX0\">several improvements specific\u00a0<\/span><\/span><span class=\"TextRun SCXW176365456 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW176365456 BCX0\">to\u00a0<\/span><\/span><span class=\"TextRun SCXW176365456 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW176365456 BCX0\">Visual Studio\u2019s native\u00a0<\/span><span class=\"SpellingError SCXW176365456 BCX0\">CMake<\/span><span class=\"NormalTextRun SCXW176365456 BCX0\">\u00a0support and\u00a0<\/span><span class=\"SpellingError SCXW176365456 BCX0\">MSBuild<\/span><span class=\"NormalTextRun SCXW176365456 BCX0\">-based Linux support.\u00a0<\/span><\/span><span class=\"TextRun SCXW176365456 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW176365456 BCX0\">If you are just getting started with Linux development in Visual Studio, I recommend trying\u00a0<\/span><span class=\"ContextualSpellingAndGrammarError SCXW176365456 BCX0\">our<\/span><span class=\"NormalTextRun SCXW176365456 BCX0\">\u00a0<\/span><\/span><a class=\"Hyperlink SCXW176365456 BCX0\" href=\"https:\/\/devblogs.microsoft.com\/cppblog\/c-with-visual-studio-2019-and-windows-subsystem-for-linux-wsl\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span class=\"TextRun Underlined SCXW176365456 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW176365456 BCX0\">native support for WSL<\/span><\/span><\/a><span class=\"TextRun SCXW176365456 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW176365456 BCX0\">.\u00a0<\/span><\/span><span class=\"EOP SCXW176365456 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<h3><span class=\"TextRun SCXW106474198 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW106474198 BCX0\">Install missing\u00a0<\/span><\/span><span class=\"TextRun SCXW106474198 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"SpellingError SCXW106474198 BCX0\">vcpkg<\/span><span class=\"NormalTextRun SCXW106474198 BCX0\">\u00a0packages with a quick action in\u00a0<\/span><span class=\"SpellingError SCXW106474198 BCX0\">CMake<\/span><span class=\"NormalTextRun SCXW106474198 BCX0\">\u00a0projects\u00a0<\/span><\/span><span class=\"EOP SCXW106474198 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h3>\n<p><a class=\"Hyperlink BCX0 SCXW205990898\" href=\"https:\/\/github.com\/Microsoft\/vcpkg\" target=\"_blank\" rel=\"noopener noreferrer\"><span class=\"TextRun Underlined BCX0 SCXW205990898\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun BCX0 SCXW205990898\">Vcpkg<\/span><\/span><\/a><span class=\"TextRun BCX0 SCXW205990898\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW205990898\">\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW205990898\">helps you manage\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW205990898\">C and C++ libraries on Windows, Linux, and\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW205990898\">m<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun CommentStart BCX0 SCXW205990898\">acOS<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW205990898\">.\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW205990898\">In Visual Studio\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW205990898\">2019 version 16.3 we have\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW205990898\">improv<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW205990898\">ed\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"SpellingError BCX0 SCXW205990898\">vcpkg<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW205990898\">\u00a0integration in Visual Studio for\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"SpellingError BCX0 SCXW205990898\">CMake<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW205990898\">\u00a0projects<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW205990898\">\u00a0that are using the\u00a0<\/span><\/span><a class=\"Hyperlink BCX0 SCXW205990898\" href=\"https:\/\/github.com\/microsoft\/vcpkg\/blob\/master\/docs\/examples\/installing-and-using-packages.md#cmake-toolchain-file\" target=\"_blank\" rel=\"noopener noreferrer\"><span class=\"TextRun Underlined BCX0 SCXW205990898\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun BCX0 SCXW205990898\">vcpkg toolchain file<\/span><\/span><\/a><span class=\"TextRun BCX0 SCXW205990898\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW205990898\">\u00a0and have run\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW205990898\">\u2018<\/span><\/span><a class=\"Hyperlink BCX0 SCXW205990898\" href=\"https:\/\/github.com\/microsoft\/vcpkg#quick-start\" target=\"_blank\" rel=\"noopener noreferrer\"><span class=\"TextRun Underlined BCX0 SCXW205990898\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun BCX0 SCXW205990898\">vcpkg integrate install<\/span><\/span><\/a><span class=\"TextRun BCX0 SCXW205990898\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW205990898\">\u2019<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW205990898\">.<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW205990898\">\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW205990898\">You will now be prompted to install\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW205990898\">missing\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"SpellingError BCX0 SCXW205990898\">vcpkg<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW205990898\">\u00a0packages\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW205990898\">via a\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun CommentStart BCX0 SCXW205990898\">quick action<\/span><\/span><span class=\"TextRun BCX0 SCXW205990898\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW205990898\">:<\/span><\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-24890\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/find_package.png\" alt=\"Add a missing vcpkg package with a quick fix in Visual Studio 2019\" width=\"732\" height=\"223\" \/><\/p>\n<p><span class=\"TextRun SCXW56801448 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW56801448 BCX0\">Selecting \u201cInstall package\u2026\u201d will automatically\u00a0<\/span><\/span><span class=\"TextRun SCXW56801448 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW56801448 BCX0\">install the missing package (and all required dependencies)\u00a0<\/span><\/span><span class=\"TextRun SCXW56801448 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW56801448 BCX0\">using\u00a0<\/span><\/span><span class=\"TextRun SCXW56801448 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"SpellingError SCXW56801448 BCX0\">v<\/span><\/span><span class=\"TextRun SCXW56801448 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"SpellingError SCXW56801448 BCX0\">cpkg<\/span><span class=\"NormalTextRun SCXW56801448 BCX0\">\u00a0<\/span><\/span><span class=\"TextRun SCXW56801448 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW56801448 BCX0\">and\u00a0<\/span><\/span><span class=\"TextRun SCXW56801448 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW56801448 BCX0\">route all output to the\u00a0<\/span><\/span><span class=\"TextRun SCXW56801448 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW56801448 BCX0\">Output Window.\u00a0<\/span><\/span><span class=\"TextRun SCXW56801448 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW56801448 BCX0\">\u00a0<\/span><\/span><span class=\"EOP SCXW56801448 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<h3><span class=\"TextRun SCXW119335132 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"SpellingError SCXW119335132 BCX0\">CMake<\/span><span class=\"NormalTextRun SCXW119335132 BCX0\">\u00a0Settings Editor usability improvements\u00a0<\/span><\/span><span class=\"EOP SCXW119335132 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h3>\n<p><span class=\"TextRun SCXW17890290 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW17890290 BCX0\">We\u2019ve\u00a0<\/span><\/span><span class=\"TextRun SCXW17890290 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW17890290 BCX0\">made it easier to configure\u00a0<\/span><span class=\"SpellingError SCXW17890290 BCX0\">CMake<\/span><span class=\"NormalTextRun SCXW17890290 BCX0\">\u00a0projects in Visual Studio by\u00a0<\/span><\/span><span class=\"TextRun SCXW17890290 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW17890290 BCX0\">improving\u00a0<\/span><\/span><span class=\"TextRun SCXW17890290 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW17890290 BCX0\">property descriptions in the\u00a0<\/span><\/span><a class=\"Hyperlink SCXW17890290 BCX0\" href=\"https:\/\/docs.microsoft.com\/en-us\/cpp\/build\/customize-cmake-settings?view=vs-2019\" target=\"_blank\" rel=\"noopener noreferrer\"><span class=\"TextRun Underlined SCXW17890290 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW17890290 BCX0\">CMake Settings Editor<\/span><\/span><\/a><span class=\"TextRun SCXW17890290 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW17890290 BCX0\">\u00a0and providing\u00a0<\/span><\/span><span class=\"TextRun SCXW17890290 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW17890290 BCX0\">in-editor\u00a0<\/span><\/span><span class=\"TextRun SCXW17890290 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW17890290 BCX0\">links to relevant documentation.\u00a0<\/span><\/span><span class=\"EOP SCXW17890290 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-24891\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/cmake_settings_editor.png\" alt=\"The CMake Settings Editor has been updated to include improved property descriptions and in-editor links to relevant documentation\" width=\"1004\" height=\"601\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/cmake_settings_editor.png 1004w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/cmake_settings_editor-300x180.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/cmake_settings_editor-768x460.png 768w\" sizes=\"(max-width: 1004px) 100vw, 1004px\" \/><\/p>\n<p>The CMake Settings Editor now maps Visual Studio properties to the corresponding CMake variable (e.g. configuration type to CMAKE_BUILD_TYPE) and describes other tools (vcpkg, rsync) that can be configured in Visual Studio.\u00a0<span class=\"TextRun SCXW23344155 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW23344155 BCX0\">\u00a0<\/span><\/span><span class=\"EOP SCXW23344155 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<h3><span class=\"TextRun SCXW117747132 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW117747132 BCX0\">Remote header performance improvements for Linux projects<\/span><\/span><span class=\"EOP SCXW117747132 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h3>\n<p><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">When you\u00a0<\/span><\/span><a class=\"Hyperlink BCX0 SCXW59741301\" href=\"https:\/\/docs.microsoft.com\/en-us\/cpp\/linux\/connect-to-your-remote-linux-computer?view=vs-2019\" target=\"_blank\" rel=\"noopener noreferrer\"><span class=\"TextRun Underlined BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun BCX0 SCXW59741301\">connect to a remote Linux system<\/span><\/span><\/a><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">, Visual Studio automatically\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">copies<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">\u00a0the include directories for the compiler\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">from<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">\u00a0the\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun CommentStart BCX0 SCXW59741301\">remote system<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">\u00a0to Windows to provide IntelliSense as if you were working<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">on your remote machine.\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">In\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun CommentStart BCX0 SCXW59741301\">Visual Studio\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">2019\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">version<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">\u00a016.3 Preview 2\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">the remote header copy<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">\u00a0has been optimized\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">and\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">now\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">runs in parallel. This leads to<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun CommentStart BCX0 SCXW59741301\">\u00a0performance improvements for large codebases<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">.<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">For example,<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">\u00a0the\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">initial\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">remote header sync for<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">\u00a0<\/span><\/span><a class=\"Hyperlink BCX0 SCXW59741301\" href=\"https:\/\/github.com\/mysql\/mysql-server\" target=\"_blank\" rel=\"noopener noreferrer\"><span class=\"TextRun Underlined BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun BCX0 SCXW59741301\">MySQL Server<\/span><\/span><\/a><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">\u00a0now runs\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">~<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">3<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">0<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">% faster<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">.<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW59741301\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX0 SCXW59741301\">Performance improvements for your own codebase may vary.<\/span><\/span><\/p>\n<p><span class=\"TextRun SCXW252499086 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW252499086 BCX0\">These performance improvements apply to both\u00a0<\/span><\/span><span class=\"TextRun SCXW252499086 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"SpellingError SCXW252499086 BCX0\">CMake<\/span><\/span><span class=\"TextRun SCXW252499086 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW252499086 BCX0\">\u00a0Linux projects and\u00a0<\/span><\/span><span class=\"TextRun SCXW252499086 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"SpellingError SCXW252499086 BCX0\">MSBuild<\/span><\/span><span class=\"TextRun SCXW252499086 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW252499086 BCX0\">-based Linux projects.\u00a0<\/span><\/span><span class=\"TextRun SCXW252499086 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW252499086 BCX0\">More<\/span><\/span><span class=\"TextRun SCXW252499086 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW252499086 BCX0\">\u00a0IntelliSense improvements for Linux projects are coming soon<\/span><\/span><span class=\"TextRun SCXW252499086 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW252499086 BCX0\">\u00a0and will be available in a future release<\/span><\/span><span class=\"TextRun SCXW252499086 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW252499086 BCX0\">, so stay tuned.\u00a0<\/span><\/span><span class=\"EOP SCXW252499086 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<h3><span class=\"TextRun SCXW123165672 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun CommentStart SCXW123165672 BCX0\">Improvements to Visual Studio\u2019s native support for WSL\u00a0<\/span><\/span><span class=\"EOP SCXW123165672 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h3>\n<p><span class=\"TextRun SCXW226533064 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW226533064 BCX0\">In Visual Studio 2019 version 16.1 we announced\u00a0<\/span><\/span><a class=\"Hyperlink SCXW226533064 BCX0\" href=\"https:\/\/devblogs.microsoft.com\/cppblog\/c-with-visual-studio-2019-and-windows-subsystem-for-linux-wsl\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span class=\"TextRun Underlined SCXW226533064 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW226533064 BCX0\">native support for C++ with WSL<\/span><\/span><\/a><span class=\"TextRun SCXW226533064 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW226533064 BCX0\">. This allows you to build and debug on your local WSL installation without adding a remote connection or configuring SSH.\u00a0 In Visual Studio 2019 version 16.3 Preview\u00a0<\/span><\/span><span class=\"TextRun SCXW226533064 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW226533064 BCX0\">2\u00a0<\/span><\/span><span class=\"TextRun SCXW226533064 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun CommentStart SCXW226533064 BCX0\">we have added support for parallel builds for\u00a0<\/span><\/span><span class=\"TextRun SCXW226533064 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"SpellingError SCXW226533064 BCX0\">MSBuild<\/span><\/span><span class=\"TextRun SCXW226533064 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW226533064 BCX0\">-based Linux projects targeting WSL<\/span><\/span><span class=\"TextRun SCXW226533064 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW226533064 BCX0\">. You can configure the maximum number of compilation processes to be created in parallel via\u00a0<\/span><\/span><span class=\"TextRun SCXW226533064 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW226533064 BCX0\">Properties\u00a0<\/span><\/span><span class=\"TextRun SCXW226533064 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW226533064 BCX0\">&gt; C\/C++ &gt; General &gt; Max Parallel Compilation Jobs:\u00a0<\/span><\/span><span class=\"EOP SCXW226533064 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-24892\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/parallel_builds.png\" alt=\"Configure max parallel compilation jobs for Linux applications targeting WSL in Visual Studio\" width=\"1136\" height=\"360\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/parallel_builds.png 1136w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/parallel_builds-300x95.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/parallel_builds-768x243.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/parallel_builds-1024x325.png 1024w\" sizes=\"(max-width: 1136px) 100vw, 1136px\" \/><\/p>\n<p><span class=\"TextRun SCXW261786071 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW261786071 BCX0\">Support for parallel compilation jobs<\/span><\/span><span class=\"TextRun SCXW261786071 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW261786071 BCX0\">\u00a0has been added for WSL applications that use\u00a0<\/span><\/span><span class=\"TextRun SCXW261786071 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"SpellingError SCXW261786071 BCX0\">gcc<\/span><span class=\"NormalTextRun SCXW261786071 BCX0\">\u00a0or\u00a0<\/span><\/span><a class=\"Hyperlink SCXW261786071 BCX0\" href=\"https:\/\/devblogs.microsoft.com\/cppblog\/clang-llvm-support-for-msbuild-projects\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span class=\"TextRun Underlined SCXW261786071 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW261786071 BCX0\">Clang.<\/span><\/span><\/a><span class=\"EOP SCXW261786071 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><span class=\"TextRun SCXW33043330 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW33043330 BCX0\">We also added support for WSL build events for\u00a0<\/span><\/span><span class=\"TextRun SCXW33043330 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"SpellingError SCXW33043330 BCX0\">MSBuild<\/span><\/span><span class=\"TextRun SCXW33043330 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW33043330 BCX0\">-based Linux projects targeting WSL. These events allow you to specify a command for the pre-build, pre-link, and post-build event tools to run in the WSL shell and can be configured via\u00a0<\/span><\/span><span class=\"TextRun SCXW33043330 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW33043330 BCX0\">Properties<\/span><\/span><span class=\"TextRun SCXW33043330 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW33043330 BCX0\">\u00a0&gt; Build Events.\u00a0\u00a0<\/span><\/span><span class=\"EOP SCXW33043330 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-24893\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/pre-build.png\" alt=\"Configure WSL pre-build, pre-link, and post-build events for Linux applications in Visual Studio\" width=\"1136\" height=\"316\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/pre-build.png 1136w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/pre-build-300x83.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/pre-build-768x214.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2019\/08\/pre-build-1024x285.png 1024w\" sizes=\"(max-width: 1136px) 100vw, 1136px\" \/><\/p>\n<h3>Resolved issues<\/h3>\n<p><span class=\"TextRun SCXW267522645 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW267522645 BCX0\">The best way to report a problem or suggest a feature to the C++ team is via\u00a0<\/span><\/span><a class=\"Hyperlink SCXW267522645 BCX0\" href=\"https:\/\/developercommunity.visualstudio.com\/spaces\/8\/index.html\" target=\"_blank\" rel=\"noopener noreferrer\"><span class=\"TextRun Underlined SCXW267522645 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW267522645 BCX0\">Developer Community<\/span><\/span><\/a><span class=\"TextRun SCXW267522645 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW267522645 BCX0\">.<\/span><\/span><span class=\"TextRun SCXW267522645 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun CommentStart SCXW267522645 BCX0\">\u00a0The following feedback tickets related to C++ cross-platform de<\/span><\/span><span class=\"TextRun SCXW267522645 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW267522645 BCX0\">velopment<\/span><\/span><span class=\"TextRun SCXW267522645 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW267522645 BCX0\"> are<\/span><\/span><span class=\"TextRun SCXW267522645 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW267522645 BCX0\"> resolved in Visual Studio 2019 version 16.3 (some fixes will be available soon in 16.3 Preview 3): <\/span><\/span><span class=\"EOP SCXW267522645 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/developercommunity.visualstudio.com\/content\/problem\/569716\/vs2019-wipes-cmakebuild-directory-each-time-i-touc.html\"><span data-contrast=\"none\">VS2019 wipes\u00a0<\/span><span data-contrast=\"none\">CMake<\/span><span data-contrast=\"none\">\u00a0build\u00a0<\/span><span data-contrast=\"none\">directory<\/span><span data-contrast=\"none\">\u00a0each time I touch CMakeLists.txt<\/span><\/a><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/developercommunity.visualstudio.com\/content\/problem\/583434\/ctests-add-test-passes-incorrect-number-of-argumen.html\"><span data-contrast=\"none\">CTest\u2019s<\/span><span data-contrast=\"none\">\u00a0<\/span><span data-contrast=\"none\">add_test<\/span><span data-contrast=\"none\">\u00a0passes\u00a0<\/span><span data-contrast=\"none\">incorrect<\/span><span data-contrast=\"none\">\u00a0number of arguments to command<\/span><\/a><span data-contrast=\"auto\">\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/developercommunity.visualstudio.com\/content\/problem\/573669\/cmake-cache-generation-always-deletes-build-direct.html\"><span data-contrast=\"none\">CMake<\/span><span data-contrast=\"none\">\u00a0cache generation always deletes\u00a0<\/span><span data-contrast=\"none\">build<\/span><span data-contrast=\"none\">\u00a0<\/span><span data-contrast=\"none\">directory<\/span><span data-contrast=\"none\">\u00a0if\u00a0<\/span><span data-contrast=\"none\">toolchain<\/span><span data-contrast=\"none\">\u00a0path has backslashes<\/span><\/a><span data-contrast=\"auto\">\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/developercommunity.visualstudio.com\/content\/problem\/617069\/cmake-targets-view-targets-have-no-cmakeliststxt-i.html\"><span data-contrast=\"none\">CMake<\/span><span data-contrast=\"none\">\u00a0Targets View \u2013 Targets have no\u00a0<\/span><span data-contrast=\"none\">CMakeLists<\/span><span data-contrast=\"none\">.txt if\u00a0<\/span><span data-contrast=\"none\">add_executable<\/span><span data-contrast=\"none\">(\/library) is called from a function defined in an included file<\/span><\/a><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/developercommunity.visualstudio.com\/content\/problem\/618088\/cmake-msvc-toolset-version-is-incorrect-in-visual.html\"><span data-contrast=\"none\">CMake<\/span><span data-contrast=\"none\">\u00a0MSVC_TOOLSET_VERSION is incorrect in Visual Studio 2019<\/span><\/a><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/developercommunity.visualstudio.com\/content\/problem\/645071\/vs-api-issue-on-cmake-solutions-in-vs-162-preview.html\"><span data-contrast=\"none\">VS API issue on\u00a0<\/span><span data-contrast=\"none\">CMake<\/span><span data-contrast=\"none\">\u00a0solutions in VS 16.2 Preview<\/span><\/a><span data-contrast=\"auto\">\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<h3>Talk to us!<\/h3>\n<p><span class=\"TextRun Highlight SCXW158039531 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW158039531 BCX0\">Do you have feedback\u00a0<\/span><\/span><span class=\"TextRun Highlight SCXW158039531 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW158039531 BCX0\">on our Linux tooling or\u00a0<\/span><span class=\"SpellingError SCXW158039531 BCX0\">CMake<\/span><span class=\"NormalTextRun SCXW158039531 BCX0\">\u00a0support in Visual Studio? We\u2019d love to hear your feedback\u00a0<\/span><\/span><span class=\"TextRun Highlight SCXW158039531 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW158039531 BCX0\">to\u00a0<\/span><\/span><span class=\"TextRun Highlight SCXW158039531 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun CommentStart SCXW158039531 BCX0\">help us prioritize and\u00a0<\/span><\/span><span class=\"TextRun Highlight SCXW158039531 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW158039531 BCX0\">build the right features for you. We can be reached via the comments below, email (<\/span><\/span><a class=\"Hyperlink SCXW158039531 BCX0\" href=\"mailto:visualcpp@microsoft.com\" target=\"_blank\" rel=\"noopener noreferrer\"><span class=\"TextRun Highlight Underlined SCXW158039531 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW158039531 BCX0\">visualcpp@microsoft.com<\/span><\/span><\/a><span class=\"TextRun Highlight SCXW158039531 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW158039531 BCX0\">), and Twitter\u00a0<\/span><\/span><a class=\"Hyperlink SCXW158039531 BCX0\" href=\"https:\/\/twitter.com\/visualc\" target=\"_blank\" rel=\"noopener noreferrer\"><span class=\"TextRun Highlight Underlined SCXW158039531 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW158039531 BCX0\">(@VisualC<\/span><\/span><\/a><span class=\"TextRun Highlight SCXW158039531 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW158039531 BCX0\">)<\/span><\/span><span class=\"TextRun Highlight SCXW158039531 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW158039531 BCX0\">.<\/span><\/span><span class=\"EOP SCXW158039531 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Visual Studio 2019 you can target both Windows and Linux from the comfort of a single IDE.\u00a0Visual Studio\u2019s native support for CMake\u00a0lets\u00a0you\u00a0open any folder containing C++ code and a CMakeLists.txt file\u00a0directly in Visual Studio\u00a0to\u00a0edit, build, and debug your\u00a0CMake\u00a0project on\u00a0Windows,\u00a0Linux, and\u00a0the\u00a0Windows Subsystem for Linux (WSL).\u00a0Visual Studio\u2019s\u00a0MSBuild-based Linux support\u00a0allows you\u00a0to create and debug console applications that [&hellip;]<\/p>\n","protected":false},"author":2953,"featured_media":24890,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[270,266,279,230,272],"tags":[],"class_list":["post-24889","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-announcement","category-cmake","category-linux","category-new-feature","category-vcpkg"],"acf":[],"blog_post_summary":"<p>In Visual Studio 2019 you can target both Windows and Linux from the comfort of a single IDE.\u00a0Visual Studio\u2019s native support for CMake\u00a0lets\u00a0you\u00a0open any folder containing C++ code and a CMakeLists.txt file\u00a0directly in Visual Studio\u00a0to\u00a0edit, build, and debug your\u00a0CMake\u00a0project on\u00a0Windows,\u00a0Linux, and\u00a0the\u00a0Windows Subsystem for Linux (WSL).\u00a0Visual Studio\u2019s\u00a0MSBuild-based Linux support\u00a0allows you\u00a0to create and debug console applications that [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/24889","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\/2953"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=24889"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/24889\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media\/24890"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media?parent=24889"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=24889"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=24889"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}