热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[C/C++开发]Clion利用Docker开发和调试LinuxC/C++程序

本文章以C++为例讲解Clion利用Docker开发和调试LinuxCC++程序。使用的Clion版本为2020.1 参考文章Clion如何使用Docker作为开发环境(主要参考)

本文章以C++为例讲解Clion利用Docker开发和调试Linux C/C++程序。使用的Clion版本为2020.1

 

参考文章

Clion 如何使用 Docker 作为开发环境 (主要参考)

Using Docker with CLion

clion远程到ubuntu的docker环境编译调试

利用Docker和CLion在Mac优雅地开发和调试Linux C++程序

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

Dockerize an SSH service

https://www.jetbrains.com/help/clion/remote-debug.html#remote-config

https://www.jetbrains.com/help/clion/cmake-profile.html

https://intellij-support.jetbrains.com/hc/en-us/community/posts/360004359599-Cmake-profile-not-found

 


构建docker镜像

dockerfile

# @description php image base on the alpine edge
# some information
# ------------------------------------------------------------------------------------
# @link https://hub.docker.com/_/alpine/ alpine image
# @link https://hub.docker.com/_/php/ php image
# @link https://github.com/docker-library/php php dockerfiles
# ------------------------------------------------------------------------------------
# @build-example docker build . -f Dockerfile -t mydev/ubuntu:1.0.0
#
FROM ubuntu:latest
RUN export DEBIAN_FROnTEND=noninteractive \
&& apt-get update \
&& apt-get install -y tzdata \
&& ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& dpkg-reconfigure --frontend noninteractive tzdata

RUN apt-get update && apt-get install -y \
ssh \
build-essential \
gcc \
g++ \
gdb \
clang \
cmake \
rsync \
tar \
python \
vim \
automake \
openssh-client \
openssh-server \
pkg-config \
libxml2-dev \
libsqlite3-dev \
&& apt-get clean

RUN apt-get install sudo
RUN echo "#!/bin/bash\nadduser deploy <> create_deploy.sh \
&& chmod 755 create_deploy.sh \
&& ./create_deploy.sh \
&& gpasswd -a deploy sudo \
&& rm create_deploy.sh \
&& chmod 644 /etc/sudoers \
&& echo "deploy ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
&& passwd deploy

以上镜像,做了几个事情要提一下

1. 安装了ssh客户端

2. 建立了linux用户,账号: deploy,密码: deploy

 


构建

docker build . -f Dockerfile -t mydev/ubuntu:1.0.0

 

 


运行容器

docker-compose.yml

version: '3.4'
services:
mydevubuntu:
image: mydev/ubuntu:1.0.0
container_name: mydevubuntu
ports:
- "2222:22"
- "2223:2223"
networks:
# create the docker network first: docker network create local_default_network
- local_default_network
# create the docker network first: docker network create pp_service_network
- pp_service_network
volumes:
- /System/Volumes/Data/Software/Project/pipi:/System/Volumes/Data/Software/Project/pipi
stdin_open: true
tty: true
privileged: true
security_opt:
- seccomp:unconfined
command:
bash -c "/etc/init.d/ssh restart && tail -f /dev/null"
networks:
local_default_network:
external: true
pp_service_network:
external: true

 

运行容器

 


项目相关

创建项目

 

 


Toolchains 设置

Settings-Build, Execution, Deployment-Toolchains

 

 

 

Settings-Build, Execution, Deployment-CMake

 

 

Settings-Build, Execution, Deployment-Deployment

 

 

 


远程debug配置


 

 

 

 

 

来了来了,他来了

 

 



推荐阅读
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
author-avatar
BREW微博2602931837
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有