彩票走势图

跨平台IDE集成开发环境Clion教程:将Docker与CLion结合使用

翻译|使用教程|编辑:吴园园|2020-01-20 10:24:06.670|阅读 4310 次

概述:CLion是一款专为开发C及C++所设计的跨平台IDE。本篇教程将为您介绍如何将Docker与CLion结合使用。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

CLion是一款专为开发C及C++所设计的跨平台IDE。它是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员的生产力。这种强大的IDE帮助开发人员在Linux、OS X和Windows上来开发C/C++,同时它还使用智能编辑器来提高代码质量、自动代码重构并且深度整合CMake编译系统,从而提高开发人员的工作效率。

点击下载CLion最新版2019.3.2

我们得到的常见问题之一是,为什么CLion中没有Docker集成?实际上,CLion与Docker配合得很好!可能还没有一个特定的“使用Docker”按钮-但是,即使您是Docker新手,您自己进行设置实际上也非常简单明了!

请继续阅读,或观看内容相同的视频:

跨平台IDE集成开发环境Clion教程:将Docker与CLion结合使用

【查看视频

为什么要使用Docker?

但是,您为什么要这样做呢?Docker不仅是最新趋势,而且代表了一种以快速,轻松,可重现和可靠的方式设置不同环境的新方法,例如,易于共享,例如在版本控制中。

C ++开发人员的常见用法是:使用多个工具链(尤其是同一编译器的不同版本–否则很难维护),使用用于不同平台的交叉编译器,甚至只是使用单个环境但使它变得容易让团队中的每个人都可以快速轻松地获得相同的环境(并保持更新)。

Docker的重量比VM轻,但实际上提供了相同级别的隔离。设置听起来很复杂,但是许多人感到惊讶的是,上手如此简单。

创建一个与CLion一起使用的Docker容器。

Docker容器在Dockerfile中进行了描述。它们看起来像简单的脚本,但是具有一些特殊的属性,使它们有些特殊。

首先,您可以引用“基础映像”,它是一个预先构建的容器,通常可以通过docker Registry获得,它完成了很多繁重的工作。我们将使用Ubuntu基本映像为我们提供一个通用的平台开始,但其他OS映像也可用。例如

FROM ubuntu:18.04

其次,在Dockerfile每一行是在什么码头工人调用执行层。一旦创建,每个层都是不可变的,因此可以轻松且廉价地回滚上一层的任何突变,而无需重新创建下层的所有层。

一旦习惯了,这就是使Docker成为如此快速且高效的环境的原因之一。在这里,我们将不再深入。 

 我们已经创建了一个参考Dockerfile供您入门。如何更改它以满足您的需求应该很明显。

通常,您将更改该apt-get部分,如果您以前使用过Ubuntu,则应该立即熟悉。当然,如果您更改基本映像,则可能需要使用其他方法来获取依赖关系。关键是它只是使用基本映像操作系统的软件包管理器(在Docker RUN命令中)。

您可能还可以获取(或创建自己)具有所有依赖项的基本映像。

RUN apt-get update \
  && apt-get install -y ssh \
    build-essential \
    gcc \
    g++ \
    gdb \
    clang \
    cmake \
    rsync \
    tar \
    python \
  && apt-get clean
然后,Dockerfile会设置SSH,以便CLion可以连接到其中,并创建供CLion使用的用户。

RUN useradd -m user && yes password | passwd user

  通常,凭据不必太晦涩难懂,但是您当然可以在需要时更改它们–或使用另一种方式(超出本介绍的范围)来指定细节,而无需在Dockerfile中提及它们。

在Dockerfile顶部的注释中,是构建和运行此Docker容器所需执行的三个命令。

第一个构建容器:

docker build -t clion/remote-cpp-env:0.5 -f Dockerfile.remote-cpp-env .

运行此过程需要几分钟,因为它会下载Ubuntu映像(无论您是否已经在Ubuntu上运行),将其“安装”到第一层,安装所有依赖项(即apt-get行),设置SSH和创建用户!鉴于所有这些,它出奇的快(您只需要这样做一次)。

构建完成后,您可以使用下一行运行容器:

docker run -d --cap-add sys_ptrace -p127.0.0.1:2222:22 --name clion_remote_env clion/remote-cpp-env:0.5

将-d容器作为守护程序运行,因此控件将返回给您。
--cap-add sys_ptrace添加了ptrace功能,这对于调试是必需的。默认情况下,Docker容器通常非常小,因此有时您需要启用基本功能。

-p2222:22指定端口映射。容器内部的端口22(默认SSH端口)映射为容器外部,作为主机环境上的端口2222。

2222没什么特别的。加倍或乘以10是表示映射端口的常用方法,但是您可以在此处指定任何可用的端口号。如果您打算并行运行多个容器(例如,以支持备用工具链),则这将很有用。

无论您选择什么端口号,因为它只是临时映射的,并且可以重用,所以通常值得清除所有缓存的SSH密钥:

ssh-keygen -f "$HOME/.ssh/known_hosts" -R [localhost]:2222"

不用担心,如果它告诉您找不到任何东西(可能是第一次)。

因此,现在Docker容器已启动并正在运行,并已安装工具链。剩下的就是让CLion使用它。

在Docker上使用远程开发工作流程

由于我们在容器中设置了SSH,因此可以使用CLion的标准远程开发功能将其连接到其中。有关设置完全远程模式的完整详细信息,请参见我们的帮助页面。

简而言之,您应该在“ ;构建”,“执行”,“部署”下的设置中将新的“ 工具链”条目添加为“ 远程主机”类型。

然后单击“ 凭据”部分中的,并填写我们在Dockerfile中设置的SSH凭据(主机: localhost,端口: 2222,用户名: user,密码 :)password。

最后,添加使用此工具链的CMake配置文件,您就完成了。如果要对容器内使用的路径进行更精细的控制,请查看“部署设置”页面。

不管哪种方式,一旦您提交了设置(Apply和/或OK),并等待CMake配置文件加载和文件传输,您都可以从Run Config下拉列表中选择CMake配置文件,您的代码将现在可以使用指定的工具链在容器内进行编译,运行和调试。

如果容器的CMake版本早于本地项目(并且您首先在本地创建了该项目),则可能需要在CMakeLists.txt文件顶部重新设置CMake版本。

您还可以在Dockerfile中获得更高版本的CMake,但这超出了本文的范围。

改变Docker环境

如果您需要更改容器,则可能还需要重新运行构建步骤。请确保查阅Docker文档,因为由于Docker的广泛缓存(通常是一件好事),更改是否生效并不总是很明显。

如果您要重建,则可能还必须重新加载CMake项目。

=====================================================

想要购买Clion正版授权的朋友可以

更多精彩内容,敬请关注下方的微信公众号,及时获取产品最新资讯▼▼▼

跨平台IDE集成开发环境Clion教程:将Docker与CLion结合使用


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP