C++在线开发环境搭建(WEBIDE)

news2024/12/23 18:38:56

C++在线开发环境搭建

  • 一、环境说明
    • 1.1 系统基础环境说明
    • 1.1 docker-ce社区版安装
  • 二、codeserver构建
    • 2.1 构建codeserver环境的docker容器
    • 2.2 构建docker镜像
    • 2.3 运行docker
    • 2.4 运行展示
  • 三、构建codeserver中的c++开发环境
    • 3.1 插件下载
    • 3.2 插件安装
  • 四、其他知识
    • 4.2 code-server配置config.yml
      • 4.2.1 常用配置选项
      • 4.2.2 示例配置文件
      • 4.2.3 使用 `--config` 启动
    • 4.1 交叉编译配置环境变量
    • 4.3 CMAKE tools 启动参数传递

本文讲解在docker环境中构建codeserver服务器。搭建基于CMakeLists.txt的C++环境搭建。其中包括codeserver配置相关说明。Dockerfile的讲解等内容。开发者可以使用这个关键在线开发C++程序。

一、环境说明

1.1 系统基础环境说明

宿主机系统环境:ubuntu-24-server版本
系统镜像下载地址:
http://mirrors.163.com/ubuntu-releases/24.04.1/ubuntu-24.04.1-live-server-amd64.iso
docker社区版本

1.1 docker-ce社区版安装

  • 安装必要的软件包以允许apt通过HTTPS使用仓库:
sudo apt update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common -y
  • 添加Docker的官方GPG密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  • 添加Docker的APT仓库:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  • 安装最新版本的Docker CE(社区版):
sudo apt update
sudo apt-get install docker-ce -y
  • 验证Docker是否安装成功并运行:
sudo systemctl status docker

在这里插入图片描述

二、codeserver构建

2.1 构建codeserver环境的docker容器

新建Dockerfile文件内容如下:

from centos:latest
# 一、配置centos源环境
RUN cd /etc/yum.repos.d/ ; mkdir bak; mv *.repo /etc/yum.repos.d/bak
COPY aliyum.repo /etc/yum.repos.d/
# 二、安装code-server
ADD code-server-4.92.2.tar /opt/install/
RUN yum install -y curl automake make gcc gcc-c++ cmake unzip wget bzip2 libtool perl file diffutils bzip2-devel zlib-devel gdb && yum clean all
WORKDIR /opt/install/code-server-4.92.2/
COPY rpm/code-server-4.92.2-amd64.rpm /root/.cache/code-server/
RUN bash -x install.sh
# 三、安装code-server关于C++在线开发的插件
COPY install /opt/install
RUN code-server --install-extension /opt/install/MS-CEINTL.vscode-language-pack-zh-hans-1.92.2024081409.vsix 
RUN code-server --install-extension /opt/install/ms-vscode.cmake-tools-1.20.6.vsix 
RUN code-server --install-extension /opt/install/ms-vscode.cpptools-1.22.3@linux-x64.vsix 
RUN code-server --install-extension /opt/install/twxs.cmake-0.0.17.vsix
RUN mkdir -p /root/workspace
EXPOSE 8080
CMD ["sh","-c" ,"code-server -w /root/workspace"]

镜像的构建一共分为三个步骤。

  • 第一步:配置centos的源环境,为了方便使用yum在线安装必须的相关环境。
    aliyum.repo的文件内容如下:
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#
 
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
#failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/
        http://mirrors.aliyuncs.com/centos/$releasever/BaseOS/$basearch/os/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/BaseOS/$basearch/os/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
 
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
#failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/os/
        http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/os/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/os/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
 
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
#failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/os/
        http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/os/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
 
[PowerTools]
name=CentOS-$releasever - PowerTools - mirrors.aliyun.com
#failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/PowerTools/$basearch/os/
        http://mirrors.aliyuncs.com/centos/$releasever/PowerTools/$basearch/os/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/PowerTools/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official


[AppStream]
name=CentOS-$releasever - AppStream - mirrors.aliyun.com
#failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/AppStream/$basearch/os/
        http://mirrors.aliyuncs.com/centos/$releasever/AppStream/$basearch/os/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/AppStream/$basearch/os/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

  • 第二步:安装code-server由于code-server安装需要下载rpm包,我提前下载在code-server安装的时候就不需要在下载了。
    下载地址:https://github.com/coder/code-server/releases
    下载:code-server-4.92.2-amd64.rpm和code-server-4.92.2-linux-amd64.tar.gz

在这里插入图片描述

第三步:安装关于C++开发的常用插件,这里的开发环境主要是针对CMakeLists.txt的环境。并且使用默认系统的研发环境进行研发,如果使用其他的版本的G++和gcc需要自己更新版本。
插件下载请第三章,
安装以下插件。
在这里插入图片描述
第四步:配置环境。

2.2 构建docker镜像

docker build -t code-server:0.1 .

2.3 运行docker

说明–privileged参数在使用gdb调试的时候使用,否则会报错。
-v 映射开发空间,是因为开发的时候如果主机重启,开发的内容会清空,所以这两个参数一定需要设置。
code-server的密码是通过环境变量PASSWORD设置的。所以在启动docker时候我们可以设置PASSWORD的值作为进入code-server服务的密码。

docker run -d -p 8080:8080 -v [宿主机地址]:/root/workspace -E PASSWROD=123456 --privileged code-server:0.1 

注意有一些版本的code-server的绑定的端口以及绑定地址参数会不同,因此需要自己注意看看文档。

2.4 运行展示

在地址栏中输入http://xxxx.xxx.xxx.xxx:8080 输入登录密码就可以使用codeserver了。
在这里插入图片描述

三、构建codeserver中的c++开发环境

3.1 插件下载

  • vscode插件市场地址
    https://marketplace.visualstudio.com/vscode

在这里插入图片描述

  • Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code
    https://marketplace.visualstudio.com/items?itemName=MS-CEINTL.vscode-language-pack-zh-hans
    Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code插件
  • C/C++
    https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools
    C/C++插件
  • cmake
    https://marketplace.visualstudio.com/items?itemName=twxs.cmake
    cmake插件
  • cmake tools
    https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools
    cmake tools插件

3.2 插件安装

codeserver的插件安装命令如下

 code-server --install-extension codelldb-x86_64-linux.vsix

四、其他知识

4.2 code-server配置config.yml

code-server--config 选项允许你指定一个配置文件(通常是 config.yml),用于自定义 code-server 的各种行为。以下是 config.yml 配置文件的常用选项和说明:

4.2.1 常用配置选项

  1. bind-addr: 指定 code-server 监听的地址和端口。

    bind-addr: 0.0.0.0:8080
    
    • 0.0.0.0 表示监听所有网络接口,可以改为特定的 IP 地址。
    • 8080 是端口号,你可以根据需要更改。
  2. auth: 配置访问的认证方式。

    auth: password
    
    • password: 使用密码认证。
    • none: 不使用认证(不建议在生产环境中使用)。
  3. password: 在使用密码认证时,设置访问密码。

    password: mypassword
    
  4. certcert-key: 配置 SSL/TLS 证书,用于 HTTPS 连接。

    cert: /path/to/your/cert.pem
    cert-key: /path/to/your/key.pem
    
  5. disable-telemetry: 禁用 code-server 的遥测数据收集。

    disable-telemetry: true
    
  6. disable-update-check: 禁用自动更新检查。

    disable-update-check: true
    
  7. proxy-domain: 配置代理域名,用于反向代理设置。

    proxy-domain: my.domain.com
    
  8. working-directory: 指定启动时的工作目录。

    working-directory: /path/to/directory
    

4.2.2 示例配置文件

以下是一个完整的 config.yml 示例:

bind-addr: 0.0.0.0:8080
auth: password
password: mypassword
cert: /path/to/your/cert.pem
cert-key: /path/to/your/key.pem
disable-telemetry: true
disable-update-check: true
working-directory: /home/user/projects

4.2.3 使用 --config 启动

启动 code-server 时使用 --config 选项指定配置文件:

code-server --config /path/to/config.yml

通过这个配置文件,你可以灵活地控制 code-server 的行为,包括监听地址、认证方式、证书配置等。

4.1 交叉编译配置环境变量

CROSS_COMPILE = arm-linux-
AS = $(CROSS_COMPILE)as
LD = $(CROSS_COMPILE)ld
CC = $(CROSS_COMPILE)gcc
CPP = $(CC) -E
AR = $(CROSS_COMPILE)ar
NM = $(CROSS_COMPILE)nm

/etc/sysconfig/docker

4.3 CMAKE tools 启动参数传递

在~/.local/share/code-server/User/setting.json
中设置

{ 
........	
	"cmake.debugConfig":{
		"args":["参数"]
	}
......
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2170463.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue仿chatGpt的AI聊天功能--大模型通义千问(阿里云)

vue仿chatGpt的AI聊天功能–大模型通义千问(阿里云) 通义千问是由阿里云自主研发的大语言模型,用于理解和分析用户输入的自然语言。 1. 创建API-KEY并配置环境变量 打开通义千问网站进行登录,登陆之后创建api-key,右…

20个数字经济创新发展试验区建设案例【2024年发布】

数据简介:国家数字经济创新发展试验区的建设是一项重要的国家战略,旨在推动数字经济与实体经济的深度融合,促进经济高质量发展。自2019年10月启动以来,包括河北省(雄安新区)、浙江省、福建省、广东省、重庆…

【java】前端RSA加密后端解密

目录 1. 说明2. 前端示例3. 后端示例3.1 pom依赖3.2 后端结构图3.3 DecryptHttpInputMessage3.4 ApiCryptoProperties3.5 TestController3.6 ApiCryptoUtil3.7 ApiDecryptParamResolver3.8 ApiDecryptRequestBodyAdvice3.9 ApiDecryptRsa3.10 ApiCryptoProperties3.11 KeyPair3…

一天面了8个Java后端,他们竟然还在背5年前的八股文!

今天面了8个Java候选人,在面试中我发现他们还停留在面试背八股文的阶段,5年前面试背八股文没问题,随着市场竞争越来越激烈,再问普通的Java八股文已经没有意义了,因为考察不出来获选人的真实实力! 现在面试…

VIGOSERVO帝人伺服驱动器维修ARN135-F ARS135-25

帝人VIGOSERVO驱动器维修TEIJIN SEIKI伺服驱动器全系列型号修理。 关于VIGOSERVO伺服驱动器维修的相关内容,可以归纳为以下几个方面: 一、维修概述 VIGOSERVO伺服驱动器作为自动化设备组件,多应用于工业机器人、数控加工等高精度传动系统中…

【大数据】大数据运维方案浅析总结

1. 引言 在大数据时代,如何高效管理和维护大规模数据平台,成为许多企业面临的重要挑战。本文将对市面上一些流行的大数据运维管理方案进行全面分析,包括Cloudera的CDH和CDP、Hortonworks的HDP、Apache的Ambari、国产开源平台Datasophon&#…

docker使用阿里云镜像加速

官方教程 https://help.aliyun.com/zh/acr/user-guide/accelerate-the-pulls-of-docker-official-images 申请地址 https://free.aliyun.com/?searchKey%E9%95%9C%E5%83%8F 阿里云容器镜像服务地址 https://cr.console.aliyun.com/cn-zhangjiakou/instances 展开才能看到

UNI-SOP应用场景(2)- 业务平台集成

前面介绍了项目前期我们前端可以不需要业务平台参与就可以开始开发,这一章我们介绍新业务平台怎么集成到UNI-SOP云统一认证中心。 新建项目引入uni-client在云认证统一管理端新增业务平台在业务平台项目配置在认证中心创建的平台信息接口开发和权限校验 新建项目 打…

浅谈端到端,助力智能驾驶突破OR错误路线

目前端到端自动驾驶的定义可以简单分为狭义端到端和广义端到端。 狭义端到端:传感器数据进入神经 网络处理后,直接输出方向盘、油门、刹车等执行器的控制信号,该模式通过单一神经网络模型实现,是严格意义上的端到端。 广义端到端&…

基于nodejs+vue的外卖管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…

【科普知识】什么是驱控一体化伺服电机?

驱控一体化伺服电机以其高度的集成性、兼容性、便捷性以及卓越的性能表现,成为了现代工业自动化领域的一颗璀璨明珠。对于那些追求高效、精准、智能控制的行业用户而言,它无疑是一种理想的选择。 一、驱控一体化伺服电机是什么 驱控一体化伺服电机&…

代码随想录算法训练营第十一天|150. 逆波兰表达式求值 239. 滑动窗口最大值 347.前 K 个高频元素

150. 逆波兰表达式求值 根据 逆波兰表示法,求表达式的值。 有效的运算符包括 , - , * , / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 说明: 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说&#xff0c…

建筑的抗震等级与建筑资质中哪些项目有关?

在地震多发地带,建筑物的抗震性能是保障人民生命财产安全的关键因素。抗震等级作为建筑设计中的一个重要指标,与建筑资质紧密相关。 建筑的抗震等级与建筑资质中以下项目有关: 1. 工程设计资质:抗震设计是建筑设计的重要组成部分&…

Mysql进阶——1

一.MySQL程序简介 本章介绍 MySQL 命令⾏程序以及在运⾏这些程序时指定选项的⼀般语法。 对常⽤程序进⾏详细的讲解,包括它们的选项。 MySQL安装完成通常会包含如下程序: • Linux系统程序⼀般在 /usr/bin⽬录下,可以通过命令查看&#x…

示例说明:sql语法学习

SQL(Structured Query Language,结构化查询语言)是一种用于管理关系型数据库的标准语言。学习SQL可以帮助你有效地查询、插入、更新和删除数据库中的数据。以下是SQL语法的一些基本概念和常用命令: 1. SQL基础语法 SQL关键字&am…

1-carla简介

1 引入 CARLA是一个开源的自动驾驶模拟器。它是从头开始构建的,作为一个模块化和灵活的API,可以解决自动驾驶问题中涉及的一系列任务。“CARLA”的主要目标之一是让自动驾驶研发自主化,成为用户可以轻松使用和定制的工具。为此,模…

K8S:开源容器编排平台,助力高效稳定的容器化应用管理

云计算de小白 Kubernetes(简称K8s)是一个开源容器编排平台,用于自动化部署、扩展和管理容器化应用程序。 K8S诞生于Google,基于其多年在生产环境运行容器的经验,目前已成为现代微服务架构和云原生应用的核心技术。 图…

CVE-2023-49735

前言: 最近扫描碰到了 CVE-2023-49735漏洞,但是网上一搜发现没有一个对这个漏洞研究的,那我就当个挖井人挖一下这个漏洞,首先我们要了解tiles org.apache.tiles提供了一种强大而灵活的方式来构建和管理 Java Web 应用程序的视图…

C#中的Modbus Ascii报文

C#中的Modbus Ascii报文的结构 Modbus ASCII报文结构遵循一定的规则,以确保数据的正确传输和识别。在C#中实现Modbus ASCII通信时,理解这些结构是非常重要的。以下是Modbus ASCII报文的基本结构: 起始字符:每个Modbus ASCII帧以冒…

TypeScript 设计模式之【观察者模式】

文章目录 观察者模式:构建灵活响应的事件通知系统观察者模式的奥秘观察者模式有什么利与弊?如何使用观察者模式来优化你的系统代码实现案例观察者模式的主要优点观察者模式的主要缺点观察者模式的适用场景总结 观察者模式:构建灵活响应的事件通知系统 …