{"id":2818,"date":"2017-06-17T01:40:40","date_gmt":"2017-06-17T08:40:40","guid":{"rendered":"https:\/\/visualgdb.com\/w\/?p=2818"},"modified":"2017-06-20T19:54:06","modified_gmt":"2017-06-21T02:54:06","slug":"developing-remote-linux-projects-with-direct-ssh-access","status":"publish","type":"post","link":"https:\/\/visualgdb.com\/tutorials\/linux\/directssh\/","title":{"rendered":"Configuring Visual Studio to access Linux Projects directly via SSH"},"content":{"rendered":"<p>This tutorial shows how to use the VisualGDB CMake Project System to develop projects physically located on Linux machines with Visual Studio and VisualGDB. Unlike the regular VisualGDB projects that require downloading sources and headers on the Windows side or using hard-to-maintain shared folders, directly accessed projects let Visual Studio edit the files on the Linux machine directly, always ensuring that you are working with the latest versions of the files.<\/p>\n<p>Before you begin, install VisualGDB 5.3 or later.<\/p>\n<ol>\n<li>Start Visual Studio and open the VisualGDB Linux Project Wizard:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/01-prjname.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2819\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/01-prjname.png\" alt=\"01-prjname\" width=\"872\" height=\"603\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/01-prjname.png 872w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/01-prjname-300x207.png 300w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/01-prjname-392x272.png 392w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/01-prjname-130x90.png 130w\" sizes=\"(max-width: 872px) 100vw, 872px\" \/><\/a><\/li>\n<li>VisualGDB can only use direct SSH access for CMake-based projects, so select &#8220;Create a new project -&gt; Use CMake&#8221; and ensure that the &#8220;Use the advanced CMake Project Subsystem&#8221; checkbox is checked:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/02-cmake.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2820\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/02-cmake.png\" alt=\"02-cmake\" width=\"822\" height=\"662\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/02-cmake.png 822w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/02-cmake-300x242.png 300w\" sizes=\"(max-width: 822px) 100vw, 822px\" \/><\/a><\/li>\n<li>On the next page select your Linux machine:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/03-target1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2821\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/03-target1.png\" alt=\"03-target\" width=\"822\" height=\"662\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/03-target1.png 822w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/03-target1-300x242.png 300w\" sizes=\"(max-width: 822px) 100vw, 822px\" \/><\/a><\/li>\n<li>On the &#8220;Source code access&#8221; select &#8220;Access the sources directly over SSH&#8221; and click &#8220;Finish&#8221; to generate the project:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/04-direct.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2822\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/04-direct.png\" alt=\"04-direct\" width=\"822\" height=\"662\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/04-direct.png 822w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/04-direct-300x242.png 300w\" sizes=\"(max-width: 822px) 100vw, 822px\" \/><\/a><\/li>\n<li>Build the project via &#8220;Ctrl-Shift-B&#8221;:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/05-build.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2823\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/05-build.png\" alt=\"05-build\" width=\"1107\" height=\"763\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/05-build.png 1107w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/05-build-300x207.png 300w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/05-build-1024x706.png 1024w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/05-build-130x90.png 130w\" sizes=\"(max-width: 1107px) 100vw, 1107px\" \/><\/a><\/li>\n<li>Ensure you can debug the project by pressing &#8220;F5&#8221;:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/06-debug1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2824\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/06-debug1.png\" alt=\"06-debug\" width=\"1107\" height=\"763\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/06-debug1.png 1107w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/06-debug1-300x207.png 300w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/06-debug1-1024x706.png 1024w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/06-debug1-130x90.png 130w\" sizes=\"(max-width: 1107px) 100vw, 1107px\" \/><\/a><\/li>\n<li>Check the Windows folder of the project. Note how it does not contain neither the sources nor the built binaries, only the solution file, the VisualGDB project file and IntelliSense cache:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/07-folder.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2825\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/07-folder.png\" alt=\"07-folder\" width=\"923\" height=\"468\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/07-folder.png 923w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/07-folder-300x152.png 300w\" sizes=\"(max-width: 923px) 100vw, 923px\" \/><\/a><\/li>\n<li>Hover the mouse over the source file tab in Visual Studio. Note the &#8220;vgdb-ssh:\/\/&#8221; syntax that is used for remote projects:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/08-url.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2826\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/08-url.png\" alt=\"08-url\" width=\"1107\" height=\"763\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/08-url.png 1107w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/08-url-300x207.png 300w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/08-url-1024x706.png 1024w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/08-url-130x90.png 130w\" sizes=\"(max-width: 1107px) 100vw, 1107px\" \/><\/a><\/li>\n<li>Right-click on the target in Solution Explorer and select &#8220;Open Terminal Here&#8221;:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/term.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2841\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/term.png\" alt=\"term\" width=\"1107\" height=\"763\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/term.png 1107w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/term-300x207.png 300w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/term-1024x706.png 1024w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/term-130x90.png 130w\" sizes=\"(max-width: 1107px) 100vw, 1107px\" \/><\/a><\/li>\n<li>We will now install the &#8220;zlib&#8221; library on the Linux machine and show how VisualGDB will automatically recognize it. Run the &#8220;sudo apt-get install zlib1g-dev&#8221; command in the SSH Console:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/zlib.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2842\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/zlib.png\" alt=\"zlib\" width=\"1107\" height=\"763\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/zlib.png 1107w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/zlib-300x207.png 300w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/zlib-1024x706.png 1024w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/zlib-130x90.png 130w\" sizes=\"(max-width: 1107px) 100vw, 1107px\" \/><\/a><\/li>\n<li>Once the installation succeeds, try including the &lt;zlib.h&gt; header. See how IntelliSense immediately picks it up with no need to resynchronize any directories: <a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/10-zlibinc.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2828\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/10-zlibinc.png\" alt=\"10-zlibinc\" width=\"1107\" height=\"763\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/10-zlibinc.png 1107w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/10-zlibinc-300x207.png 300w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/10-zlibinc-1024x706.png 1024w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/10-zlibinc-130x90.png 130w\" sizes=\"(max-width: 1107px) 100vw, 1107px\" \/><\/a><\/li>\n<li>Try calling the zlibVersion() function from your code. See how the link fails due to a missing definition of the called function:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/11-ver.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2829\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/11-ver.png\" alt=\"11-ver\" width=\"1107\" height=\"763\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/11-ver.png 1107w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/11-ver-300x207.png 300w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/11-ver-1024x706.png 1024w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/11-ver-130x90.png 130w\" sizes=\"(max-width: 1107px) 100vw, 1107px\" \/><\/a><\/li>\n<li>Open property pages for the main target and add &#8220;z&#8221; to the Linked Libraries field:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/12-libz.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2830\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/12-libz.png\" alt=\"12-libz\" width=\"1107\" height=\"763\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/12-libz.png 1107w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/12-libz-300x207.png 300w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/12-libz-1024x706.png 1024w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/12-libz-130x90.png 130w\" sizes=\"(max-width: 1107px) 100vw, 1107px\" \/><\/a><\/li>\n<li>See how VisualGDB automatically edits the target_link_libraries() statement in CMakeLists.txt:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/13-edit.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2831\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/13-edit.png\" alt=\"13-edit\" width=\"1107\" height=\"763\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/13-edit.png 1107w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/13-edit-300x207.png 300w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/13-edit-1024x706.png 1024w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/13-edit-130x90.png 130w\" sizes=\"(max-width: 1107px) 100vw, 1107px\" \/><\/a><\/li>\n<li>Try debugging the target to ensure the function gets called properly:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/14-ver.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2832\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/14-ver.png\" alt=\"14-ver\" width=\"1107\" height=\"763\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/14-ver.png 1107w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/14-ver-300x207.png 300w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/14-ver-1024x706.png 1024w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/14-ver-130x90.png 130w\" sizes=\"(max-width: 1107px) 100vw, 1107px\" \/><\/a><\/li>\n<li>Try adding a new source file via Add-&gt;New Item and immediately removing it (select &#8220;Remove&#8221;, not &#8220;Delete&#8221; to keep in on the disk). Then save your project:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/15-addsource.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2833\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/15-addsource.png\" alt=\"15-addsource\" width=\"1107\" height=\"763\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/15-addsource.png 1107w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/15-addsource-300x207.png 300w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/15-addsource-1024x706.png 1024w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/15-addsource-130x90.png 130w\" sizes=\"(max-width: 1107px) 100vw, 1107px\" \/><\/a><\/li>\n<li>Now select &#8220;Add-&gt;Existing Item&#8221;:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/16-existing.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2834\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/16-existing.png\" alt=\"16-existing\" width=\"1107\" height=\"763\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/16-existing.png 1107w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/16-existing-300x207.png 300w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/16-existing-1024x706.png 1024w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/16-existing-130x90.png 130w\" sizes=\"(max-width: 1107px) 100vw, 1107px\" \/><\/a><\/li>\n<li>See how VisualGDB is browsing the remote filesystem on the Linux machine as if the files were located on Windows:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/17-browse.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2835\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/17-browse.png\" alt=\"17-browse\" width=\"1107\" height=\"763\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/17-browse.png 1107w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/17-browse-300x207.png 300w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/17-browse-1024x706.png 1024w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/17-browse-130x90.png 130w\" sizes=\"(max-width: 1107px) 100vw, 1107px\" \/><\/a><\/li>\n<li>Right-click on the project in Solution Explorer and select &#8220;VisualGDB Project Properties&#8221;: \u00a0 <a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/20-vgdbprop.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2838\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/20-vgdbprop.png\" alt=\"20-vgdbprop\" width=\"1107\" height=\"763\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/20-vgdbprop.png 1107w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/20-vgdbprop-300x207.png 300w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/20-vgdbprop-1024x706.png 1024w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/20-vgdbprop-130x90.png 130w\" sizes=\"(max-width: 1107px) 100vw, 1107px\" \/><\/a><\/li>\n<li>The VisualGDB Project Properties window allows editing various VisualGDB-specific project properties (e.g. you can explicitly specify the cmake location or add &#8220;-DCMAKE_VAR_NAME=VALUE&#8221; arguments to modify your project configuration):<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/21-cmakeprop.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2839\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/21-cmakeprop.png\" alt=\"21-cmakeprop\" width=\"1107\" height=\"763\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/21-cmakeprop.png 1107w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/21-cmakeprop-300x207.png 300w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/21-cmakeprop-1024x706.png 1024w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/21-cmakeprop-130x90.png 130w\" sizes=\"(max-width: 1107px) 100vw, 1107px\" \/><\/a><\/li>\n<li>The VisualGDB CMake projects are self-sufficient. You can always build them from the Linux machine by running CMake:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/console.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2840\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/console.png\" alt=\"console\" width=\"774\" height=\"593\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/console.png 774w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/console-300x230.png 300w\" sizes=\"(max-width: 774px) 100vw, 774px\" \/><\/a><\/li>\n<li>VisualGDB uses a highly optimized cache mechanism to avoid downloading the same files over and over again. It maintains cached copies of the relevant files under the CodeDB\\&lt;project&gt;\\VFSCache directory and periodically checks the relevant remote directory for changes. Unlike the regular projects that require downloading of the entire include and source directories beforehand, the directly accessed projects read the necessary files only when needed, resulting in better performance and less confusion. You can view the internal state of the remote FS cache via View-&gt;Clang IntelliSense Diagnostics Console-&gt;Remote FS:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/status.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2843\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/status.png\" alt=\"status\" width=\"1107\" height=\"763\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/status.png 1107w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/status-300x207.png 300w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/status-1024x706.png 1024w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/06\/status-130x90.png 130w\" sizes=\"(max-width: 1107px) 100vw, 1107px\" \/><\/a>The console shows the exact time spent on listing directories and fetching files from the Linux machine, so you can quickly check whether your network connection provides sufficient performance for the direct access mode.<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This tutorial shows how to use the VisualGDB CMake Project System to develop projects physically located on Linux machines with<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[77,33],"_links":{"self":[{"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/posts\/2818"}],"collection":[{"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/comments?post=2818"}],"version-history":[{"count":4,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/posts\/2818\/revisions"}],"predecessor-version":[{"id":2847,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/posts\/2818\/revisions\/2847"}],"wp:attachment":[{"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/media?parent=2818"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/categories?post=2818"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/tags?post=2818"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}