{"id":273888,"date":"2022-08-16T13:22:48","date_gmt":"2022-08-16T12:22:48","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=clion&#038;p=273888"},"modified":"2022-08-16T13:22:49","modified_gmt":"2022-08-16T12:22:49","slug":"5-approaches-to-remote-cpp-dev","status":"publish","type":"clion","link":"https:\/\/blog.jetbrains.com\/zh-hans\/clion\/2022\/08\/5-approaches-to-remote-cpp-dev","title":{"rendered":"5 Approaches to Remote C++ Development With CLion \u2013 Webinar Recording"},"content":{"rendered":"<p>The recording for our webinar, <em>5 Approaches to Remote C++ Development With CLion<\/em>, with Matt Ellis and<strong> <\/strong>Timur Doumler, is now <a href=\"https:\/\/www.youtube.com\/watch?v=7qMk79sIv5U\" target=\"_blank\" rel=\"noopener\">available<\/a> for you to watch. <a href=\"https:\/\/www.jetbrains.com\/community\/newsletters\/\" target=\"_blank\" rel=\"noopener\">Subscribe to our community newsletter<\/a> to receive notifications about future webinars.<\/p>\n<p><iframe loading=\"lazy\" width=\"800\" height=\"450\" src=\"https:\/\/www.youtube.com\/embed\/7qMk79sIv5U\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\"><\/iframe><\/p>\n<h2 id=\"webinar_agenda\">Webinar agenda<\/h2>\n<p>The webinar consists of the following parts:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=7qMk79sIv5U&amp;t=0s\" target=\"_blank\" rel=\"noopener\">00:00<\/a> Introduction<\/li>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=7qMk79sIv5U&amp;t=300s\" target=\"_blank\" rel=\"noopener\">05:00<\/a> Remote development with Gateway<\/li>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=7qMk79sIv5U&amp;t=1245s\" target=\"_blank\" rel=\"noopener\">20:45<\/a> Remote development with local sources<\/li>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=7qMk79sIv5U&amp;t=1920s\" target=\"_blank\" rel=\"noopener\">32:00<\/a> Containers and virtual machines: WSL<\/li>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=7qMk79sIv5U&amp;t=2182s\" target=\"_blank\" rel=\"noopener\">36:22<\/a> Containers and virtual machines: Docker<\/li>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=7qMk79sIv5U&amp;t=2609s\" target=\"_blank\" rel=\"noopener\">43:29<\/a> Making Raspberry Pi blink an LED by debugging remotely from CLion<\/li>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=7qMk79sIv5U&amp;t=3371s\" target=\"_blank\" rel=\"noopener\">56:11<\/a> Code With Me, collaborative editing (Matt now blinks an LED on Timur\u2019s Raspberry Pi!)<\/li>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=7qMk79sIv5U&amp;t=4075s\" target=\"_blank\" rel=\"noopener\">01:07:55<\/a> Recap of the options, comparison table<\/li>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=7qMk79sIv5U&amp;t=4296s\" target=\"_blank\" rel=\"noopener\">01:11:36<\/a> Back to remote development with Gateway<\/li>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=7qMk79sIv5U&amp;t=4454s\" target=\"_blank\" rel=\"noopener\">01:14:14<\/a> Q&amp;A and wrap-up<\/li>\n<\/ul>\n<h2 id=\"useful_links\">Useful links<\/h2>\n<p>Here are some related links and resources:<\/p>\n<ul>\n<li>Remote development with Gateway:\n<ul>\n<li>JetBrains <a href=\"https:\/\/www.jetbrains.com\/remote-development\/gateway\/\" target=\"_blank\" rel=\"noopener\">Gateway website<\/a>.<\/li>\n<li><a href=\"https:\/\/blog.jetbrains.com\/blog\/2021\/12\/03\/dive-into-jetbrains-gateway\/\">A deep dive into Gateway<\/a> from Matt Ellis.<\/li>\n<li>Detailed <a href=\"https:\/\/www.jetbrains.com\/help\/clion\/remote.html\" target=\"_blank\" rel=\"noopener\">web help<\/a>.<\/li>\n<\/ul>\n<\/li>\n<li>A <a href=\"https:\/\/www.jetbrains.com\/help\/clion\/remote-development.html#system-level\" target=\"_blank\" rel=\"noopener\">comparison<\/a> of the other remote modes in addition to Gateway. Remote development with the thin client (a.k.a. Gateway) is a work in progress and not currently present in the comparison table.<\/li>\n<li>Detailed <a href=\"https:\/\/www.jetbrains.com\/help\/clion\/remote-projects-support.html\" target=\"_blank\" rel=\"noopener\">web help<\/a> for full remote mode.<\/li>\n<li>Web help for developing on <a href=\"https:\/\/www.jetbrains.com\/help\/clion\/how-to-use-wsl-development-environment-in-product.html\" target=\"_blank\" rel=\"noopener\">WSL<\/a> in CLion.<\/li>\n<li>A <a href=\"https:\/\/www.youtube.com\/watch?v=Vj06cfj6LyI\" target=\"_blank\" rel=\"noopener\">video guide<\/a> to Windows toolchains in CLion, by Timur Doumler.<\/li>\n<li>Docker:\n<ul>\n<li>Web help for using the <a href=\"https:\/\/www.jetbrains.com\/help\/clion\/clion-toolchains-in-docker.html\" target=\"_blank\" rel=\"noopener\">Docker<\/a> toolchain in CLion.<\/li>\n<li>A <a href=\"https:\/\/www.youtube.com\/watch?v=p7Bi-mOyelM\" target=\"_blank\" rel=\"noopener\">video guide<\/a> to the Docker toolchain in CLion, by Timur Doumler.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"notable_q_a\">Notable Q&amp;A<\/h2>\n<h3 id=\"remote_development_with_the_thin_client\">Remote development with the thin client<\/h3>\n<p><strong>Does the thin client inherit all options, plugins, etc. that I might have set up in CLion?<\/strong><br \/>\nThe plugins currently don\u2019t migrate, but your color scheme, appearance, and so on do.<\/p>\n<p><strong>If I have a Linux server with access to the Internet and SSH only, can I connect and install everything via Gateway without needing any extras?<\/strong><br \/>\nAbsolutely! Gateway manages everything for you. If you give it a plain Linux server, it will look at what&#8217;s installed there already. If you don\u2019t have an IDE, then it will download and install one, and connect to it. Then you can proceed with developing.<\/p>\n<p><strong>What are the requirements for Gateway?<\/strong><br \/>\nGateway can run on Linux, Windows, or macOS. The remote machine should run Linux. Please refer to this <a href=\"https:\/\/www.jetbrains.com\/help\/clion\/faq-about-remote-development.html#host_machine_requirements\" target=\"_blank\" rel=\"noopener\">web help topic<\/a> for more details.<\/p>\n<h3 id=\"code_with_me\">Code With Me<\/h3>\n<p><strong>What do I need to start with a collaborative session? Should I just follow the link shared with me, and will it download everything?<\/strong><br \/>\nFrom the guests perspective, the application will do everything for you. It will download the client and connect automatically. Learn how to <a href=\"https:\/\/www.jetbrains.com\/help\/clion\/code-with-me.html#work_host\" target=\"_blank\" rel=\"noopener\">get started<\/a> as a host.<\/p>\n<p><strong>What is the licensing for Code With Me?<\/strong><br \/>\nCode With Me is included in your IDE subscription. For example, if you own a CLion subscription, you can invite up to 50 guests who don\u2019t have a subscription, and they will be able to follow you. Check out the <a href=\"https:\/\/www.jetbrains.com\/code-with-me\/buy\/#commercial\" target=\"_blank\" rel=\"noopener\">Enterprise and other pricing options<\/a>.<\/p>\n<p><strong>What about privacy for both Code With Me and Gateway?<\/strong><br \/>\nAll of the data is encrypted, so JetBrains can\u2019t see anything. In the case of Code With Me, we try to do peer-to-peer. If that\u2019s not possible, we have a relay server, where the data comes fully encrypted and is also secure. Please see this <a href=\"https:\/\/www.jetbrains.com\/help\/clion\/faq-about-code-with-me-security.html#data_jb\" target=\"_blank\" rel=\"noopener\">web help topic<\/a> for more details on Code With Me security, and <a href=\"https:\/\/www.jetbrains.com\/help\/clion\/faq-about-remote-development.html#access\" target=\"_blank\" rel=\"noopener\">here<\/a> you can find information about Gateway security.<\/p>\n<h3 id=\"docker_toolchain\">Docker toolchain<\/h3>\n<p><strong>Does a single build\/run in a Docker container run stuff on a living container? Or does it spawn a container only for 1 run\/build and then kills it after the build is finished?<\/strong><br \/>\nYes, it runs and kills it afterwards. But if the gap between the build and the run is less than 3 seconds, then the running container can be reused.<\/p>\n<p><strong>Can I specify the folder where I want to push code to Docker, and tell CLion to use an existing instance instead of rerunning the image?<\/strong><br \/>\nNo, the path is hardcoded. But you can use a generic remote host workflow for this scenario. The same advice applies to remote Docker containers, as the Docker toolchain in CLion currently only works with local containers.<\/p>\n<p>Your CLion team<br \/>\nJetBrains<br \/>\n<em>The Drive to Develop<\/em><\/p>\n","protected":false},"author":266,"featured_media":254169,"comment_status":"closed","ping_status":"closed","template":"","categories":[30],"tags":[6315,726,3581,1038,6716,1303],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/clion\/273888"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/clion"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/types\/clion"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/users\/266"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/comments?post=273888"}],"version-history":[{"count":10,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/clion\/273888\/revisions"}],"predecessor-version":[{"id":273902,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/clion\/273888\/revisions\/273902"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media\/254169"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media?parent=273888"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/categories?post=273888"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/tags?post=273888"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/cross-post-tag?post=273888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}