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

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.rhkb.cn/news/434114.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java-数据结构-排序-(二) (๑¯∀¯๑)

文本目录: ❄️一、交换排序: ➷ 1、 冒泡排序: ▶ 代码: ➷ 2、 快速排序: ☞ 基本思想: ☞ 方法一:Hoare法 ▶ 代码: ☞ 方法二:挖坑法 ▶ 代码: ☞ 方法三…

Brave编译指南2024 MacOS篇-获取源码(三)

引言 在上一篇文章中,我们介绍了Brave浏览器的基本特性,以及编译Brave所需的系统要求和推荐工具。现在,我们将进入编译过程的第一个实际步骤:获取Brave的源代码。这一步骤对于后续的编译和开发工作至关重要。 1. Brave源码的获取途径 Brave的源码托管在GitHub上,任何人都可以…

Scrapy框架入门

一、Scrapy简介 Scrapy是一款快速而强大的web爬虫框架,基于Twisted的异步处理框架、Twisted是事件驱动的。 Scrapy是由python实现的爬虫框架:架构清晰、可扩展性强、可以灵活完成需求。 一、Scrapy应用 scrapy及其他模块的安装 pip3 install scrapy…

【漏洞复现】数字通云平台智慧政务 login 存在登录绕过漏洞

》》》产品描述《《《 数字通云平台智慧政务OA产品是基于云计算、大数据、人工智能等先进技术,为政府部门量身定制的智能化办公系统。该系统旨在提高政府部门的办公效率、协同能力和信息资源共享水平,推动电子政务向更高层次发展。 》》》漏洞描述《《《…

【C++篇】揭开 C++ STL list 容器的神秘面纱:从底层设计到高效应用的全景解析(附源码)

文章目录 从零实现 list 容器:细粒度剖析与代码实现前言1. list 的核心数据结构1.1节点结构分析: 2. 迭代器设计与实现2.1 为什么 list 需要迭代器?2.2 实现一个简单的迭代器2.2.1 迭代器代码实现:2.2.2 解释: 2.3 测试…

设置VsCode搜索时排除文件,文件列表中隐藏文件

按照《VsCode gdb gdbserver远程调试C程序》中介绍的方法,配置好VsCode后,打开一个C/C工程,发现左侧的面板会显示编译时生成的中间文件(比如.d和.o文件)。我们可以通过设置隐藏掉一些我们不需要打开的文件以简洁面板…

如何使用 DomCrawler 进行复杂的网页数据抓取?

在互联网时代,数据是宝贵的资源。无论是市场分析、客户洞察还是内容聚合,从网页中抓取数据都是一项关键技能。Symfony 的 DomCrawler 是一个强大的工具,可以帮助开发者从复杂的网页中提取所需的数据。本文将详细介绍如何使用 DomCrawler 进行…

SO-ELM预测 | MATLAB实现SO-ELM蛇群算法优化极限学习机多输入单输出

回归预测 | MATLAB实现SO-ELM蛇群算法优化极限学习机多输入单输出 目录 回归预测 | MATLAB实现SO-ELM蛇群算法优化极限学习机多输入单输出效果一览基本介绍程序设计效果一览 基本介绍 Matlab实现SO-ELM蛇群算法优化极限学习机多变量回归预测 1.data为数据集,7个输入特征,1个输…

C#和数据库高级:密封类和方法覆盖

文章目录 一、密封类关键字:sealed方法覆盖 面向对象三大特性总结 一、密封类 关键字:sealed 方法覆盖 面向对象三大特性总结

Java项目实战II基于Java+Spring Boot+MySQL的厨艺交流平台设计与实现(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在美食文化…

记一次停车场后台管理系统漏洞挖掘

漏洞描述 停车场后台管理系统是一种专为停车场管理者设计的综合管理平台,旨在提供全面、高效、智能的停车场运营管理解决方案,系统利用现代信息技术,如物联网、大数据、云计算等,实现对停车场内车辆进出、车位管理、费用结算、安…

多模态——基于XrayGLM的X光片诊断的多模态大模型

0.引言 近年来,通用领域的大型语言模型(LLM),如ChatGPT,已在遵循指令和生成类似人类的响应方面取得了显著成就。这些成就不仅推动了多模态大模型研究的热潮,也催生了如MiniGPT-4、mPLUG-Owl、Multimodal-G…

【工具分享】DoNex勒索病毒解密工具

前言 DoNex勒索软件首次被发现于2024年3月,是由一系列早期勒索软件演变而来,包括2022年4月首次出现的Muse、2022年11月的假冒LockBit 3.0,以及2023年5月的DarkRace。这款勒索软件主要针对美国、意大利和荷兰的企业,使用复杂的加密…

日本IT-正社员、契约社员、个人事业主该如何选?

正社員:就是「正规社员」的意思,按照公司的规定而直接雇用,而且没有制定雇用期间,基本上是以终身雇用至退休年龄(70岁)为前提。而被雇用的一方需要听从公司的业务命令,包括职位或职场的调迁&…

AI名词扫盲

本篇章主要介绍一些AI研究方向的名词以及解释,后续会持续补充,名词解释与时间顺序无关,欢迎各位大佬们在评论区查漏补缺。 目录 AI(Artificial Intelligence,人工智能)卷积神经网络(CNN&#xf…

巧用枚举消除条件判断

shigen坚持更新文章的博客写手,记录成长,分享认知,留住感动。个人IP:shigen 在上一篇的文章结合HashMap与Java 8的Function和Optional消除ifelse判断中有讲到如何结合HashMap与Java 8的Function和Optional消除ifelse判断&#xff…

Linux进程切换以及调度算法

目录 Linux进程切换以及调度算法 Linux进程切换介绍 前置知识 进程切换过程分析 调度算法 补充知识 Linux进程切换以及调度算法 Linux进程切换介绍 前面提到,分时操作系统下,CPU会在多个进程中做高速切换以实现多个进程看似同时执行的&#xff0…

open-resty 服务安装redis插件

从github下载 作者:程序那点事儿 日期:2023/11/16 22:04 lua-resty-redis-cluster cd /usr/local/openresty/modules #进入到modules目录git clone https://github.com/cuiweixie/lua-resty-redis-cluster.git #下载插件mv lua-resty-redis-cluster/ …

字节跳动青训营x豆包Marscode 技术训练营报名啦!

最近字节跳动青训营又开营了,作为第二次参加的我来给没有了解过的同学从几个方面简单介绍一下。 青训营是什么 青训营是字节跳动 稀土掘金 社区发起的技术系列培训 & 人才选拔项目,面向在校大学生, 课程全程免费,包含前端、…

git小乌龟

下载git小乌龟 官方地址 Download – TortoiseGit – Windows Shell Interface to Git git小乌龟下载 选择自己对应的版本进行下载 安装完成后我们会发现是英文,这对我们这些英语不好的很不友好,所以就需要下载语言包 下载对应语言包 安装完成后我们…