Linux Ubuntu命令行快速配置C++开发环境

  本文介绍在Linux操作系统的Ubuntu版本中,基于命令行,快速配置C++ 编辑、编译、运行的代码开发环境的简便方法。

  在之前的文章Linux操作系统Ubuntu 22.04配置Visual Studio Code与C++代码开发环境的方法(https://blog.csdn.net/zhebushibiaoshifu/article/details/127037709),我们就介绍过在Linux Ubuntu操作系统下,配置Visual Studio Code软件与C++ 代码开发环境的方法。只不过,我们当时的文章中是用了Visual Studio Code作为编辑器,所以相对配置起来就比较麻烦;并且当时的方法用了很多图形界面的软件来操作,对于一些没有图形界面的电脑(比如服务器)而言就无法操作了。所以我们这里再介绍一下基于命令行,快速配置C++ 代码开发环境的方法。

  为了配置C++ 代码开发环境,首先,我们需要配置编译器。编译器是一种将源代码翻译成机器可执行代码的工具,它接收源代码文件作为输入,并将其转换为可执行文件库文件或其他形式的目标文件Linux一般使用gccg++作为默认的编译器,对于Visual Studio而言,其C++ 编译器则是Microsoft C++MSVC)。

  首先,我们分别输入并运行如下两行代码,查看电脑中gccg++是否存在。

g++ --version
gcc --version

  运行上述代码,如下图所示。由于我这里已经配置过二者了,所以会显示二者具体的版本。

  可以看到,上图和下图显示二者的各自版本。

  如果大家没有配置gccg++,那么首先通过如下代码更新软件包列表

sudo apt update

  运行上述代码,如下图所示。

  随后,分别运行如下两句代码。还是要注意,因为我这里是已经配置过gccg++了,所以运行这些代码可能会和大家具体显示的内容不一致。

sudo apt install g++
sudo apt install gcc

  运行上述第一句代码,如下图所示。

  运行上述第二句代码,如下图所示。

  接下来,我们需要配置makecmake。二者都是构建软件项目的工具,用于自动化编译和构建过程;简单来说,如果我们只有一个.cpp代码文件,里面包含了主函数,那么我们就直接用前面配置好的gccg++编译即可;但是对于处理复杂项目、多个源文件、外部库依赖等情况,就需要makecmake了。

  同样的,分别执行如下代码,查看电脑中二者的版本。

make --version
cmake --version

  运行上述代码,如下图所示。我这里已经配置过二者了,所以出现了如下的内容。

  如果大家没有配置过,执行如下代码即可。

sudo apt install cmake make

  运行上述代码,如下图所示。

  接下来,我们配置代码的编辑器。在文章Linux操作系统Ubuntu 22.04配置Visual Studio Code与C++代码开发环境的方法(https://blog.csdn.net/zhebushibiaoshifu/article/details/127037709)中我们也提到了,在Linux操作系统中配置代码开发环境,最复杂的一点就在于其不能安装Visual Studio这种集成好的IDE软件,而是需要分别配置Visual Studio Code编辑器软件和其他编译器等。在那篇文章中,我们是用了具有图形化界面的Visual Studio Code作为编辑器,那么这里我们就选择Vim这个不需要图形界面的软件作为编辑器。如果大家需要在Mac电脑中配置Vim,则可以查看文章Vim在Mac电脑中的下载与安装方法:MacVim(https://fkxxgis.blog.csdn.net/article/details/132352344)。

  同样的,首先查看电脑中是否有Vim

vim --version

  运行上述代码,如下图所示。

  还是同样,如果没有Vim,就通过以下第一句代码安装;如果有了但是想看看能不能更新Vim,就执行第二句。

sudo apt install vim
sudo apt upgrade vim

  我这里运行上述第二句代码,如下图所示。

  接下来,我们就可以撰写代码了。首先,用如下代码在当前工作目录中创建一个.cpp文件。

vim test.cpp

  这里大家可以注意,关于当前的工作目录是哪一个,大家可以通过如下第一句代码查看;关于当前目录下还有哪些文件或文件夹,可以通过如下第二句代码查看。

pwd
ls

  运行上述代码,如下图所示。

  我们继续前文,进入.cpp文件后,即可开始代码的撰写。这里我们就写一个简单的打印Hello即可。

  保存文件后,用如下代码编译和链接.cpp源代码文件,并将其转换为可执行文件;其中,my_hello就是可执行文件的名称,大家随意修改。

g++ test.cpp -o my_hello

  执行上述代码,如下图所示。可以看到,如果代码中有错误(我一开始代码少输入了一个分号),其会提示错误内容;如果没有错误,就没有任何反应。

  接下来,用如下代码执行我们刚刚得到的可执行文件my_hello

./my_hello

  执行上述代码,也就是执行了我们的.cpp代码;如下图所示,可以看到已经打印了Hello

  所以,表明我们已经成功配置好了C++ 代码开发环境。

  至此,大功告成。

欢迎关注:疯狂学习GIS

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

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

相关文章

版本控制系统git:一文了解git,以及它在生活中的应用,网站维护git代码,图导,自动化部署代码

目录 1.Git是什么 2.git在生活中的应用 2.1git自动化部署代码 3.网站维护git代码 3.1如何在Git代码托管平台等上创建一个仓库 3.2相关文章 4.ruby实现基础git 4.1.Git add 4.2 Git commit 4.3 Git log 1.Git是什么 Git是一个版本控制系统,它可以追踪文件的…

多边形碰撞检测算法

1、AABB碰撞检测算法 AABB碰撞检测指轴对齐碰撞箱(Axis-aligned Bounding Box),是分别从x轴向和y轴向进行碰撞检测的算法。即对于需要检测的物体A和物体B我们需要将其用A盒和B盒套起来,判断A盒和B盒在x轴向和y轴向是否发生碰撞,只有在x轴向和…

软件需求文档、设计文档、开发文档、运维文档大全

在软件开发过程中,文档扮演着至关重要的角色。它不仅记录了项目的需求、设计和开发过程,还为项目的维护和管理提供了便利。本文将详细介绍软件开发文档的重要性和作用,以及需求分析、软件设计、开发过程、运维管理和项目管理等方面的文档要求…

Flink--4、DateStream API(执行环境、源算子、基本转换算子)

星光下的赶路人star的个人主页 注意力的集中,意象的孤立绝缘,便是美感的态度的最大特点 文章目录 1、DataStream API1.1 执行环境(Execution Environment)1.1.1 创建执行环境 1.2 执行模式(Execution Mode)…

十六)Stable Diffusion教程:出图流程化

今天说一个流程化出图的案例,适用很多方面。 1、得到线稿,自己画或者图生图加线稿lora出线稿;如果想sd出图调整参数不那么频繁细致,则线稿的素描关系、层次、精深要表现出来,表现清楚。 2、文生图,seed随机…

Android中的缓存策略:LruCache和DiskLruCache

Android中的缓存策略:LruCache和DiskLruCache 导言 本篇文章主要是介绍Android中内置的两个缓存类的原理。所谓缓存,就是将获取的数据保存下来以便下次继续使用,这种技术尤其在网络请求和图片加载中有用,可以显著地提升App的性能…

原生js的animate()方法详解

1.介绍 Element 接口的 animate() 方法是创建一个新的 Animation 的便捷方法,将它应用于元素,然后运行动画。它将返回一个新建的 Animation 对象实例。 同时通过Element.getAnimations() 方法可获取元素所有的Animation实例。 2.语法 Element.animate…

【PLC GX Works2】创建一个工程

PLC GX Works2软件安装 https://www.jcpeixun.com/software/375 程序编写 1、工程中找到新建 2、新建 3、导航栏中选择第三行第一个,是全局软元件注释 4、修改软元件名x0为点动按钮,y1为电机,之后关闭即可。 5、左母线,右…

Spring Security 的身份验证绕过漏洞CVE-2023-34035

文章目录 0.前言漏洞漏洞介绍描述 1.参考文档2.基础介绍2.1 组件简介:2.2 漏洞简介: 3.解决方案3.1. 升级版本 0.前言 背景:公司收到关于 Spring Security 的一个身份验证绕过漏洞的通知,该漏洞被标识为 CVE-2023-34035 漏洞 高 …

【大数据开发技术】实验01-Hadoop安装部署

文章目录 Hadoop安装部署一、实验目标二、实验要求三、实验内容四、实验步骤 Hadoop安装部署 虚拟机数量:3 系统版本:Centos 7.5 Hadoop版本: Apache Hadoop 2.7.3 主节点信息: 操作系统:CentOS7.5 软件包位置&…

【机器学习】回归问题实例(李宏毅老师作业1)

文章目录 任务介绍完成和调参 任务介绍 问题描述 给出美国某一州过去3天的调查结果,然后预测第3天新检测阳性病例的百分比。 数据相关特征feature States(34, encode to one-hot vectors) 34个州COVID-like illness&#xff0…

2101. 引爆最多的炸弹;752. 打开转盘锁;1234. 替换子串得到平衡字符串

2101. 引爆最多的炸弹 核心思想:枚举BFS。枚举每个炸弹最多引爆多少个炸弹,对每个炸弹进行dfs,一个炸弹能否引爆另一个炸弹是两个炸弹的圆心距离在第一个炸弹的半径之内。 752. 打开转盘锁 核心思想:典型BFS,就像水源扩散一样&a…

打造本地紧密链接的开源社区——KCC@长沙开源读书会openKylin爱好者沙龙圆满举办...

2023年9月9日,由开源社联合 openKylin 社区举办的 KCC长沙开源读书会&openKylin 爱好者沙龙,在长沙圆满举办。这是 KCC长沙首次正式进入公众视野,开展开源交流活动,也是 openKylin 社区长沙首场线下沙龙。长沙地区及其周边的众…

期刊目录解析 | 慎投!又2本“On Hold”SCI期刊被踢!

科睿唯安官方目前对SCI期刊的管理可以说是相当严格的,每个月都会出评估报告,如果任何一本期刊有问题,就会先被“On Hold”,这代表需要重新评估是否符合SCI标准,有可能直接被剔除。 此前,小编也为大家统计了…

Pdf文件签名检查

如何检查pdf的签名 首先这里有一个已经签名的pdf文件&#xff0c;通过pdf软件可以看到文件的数字签名。 图1为签名后的文件&#xff0c;图2为签名后文件被篡改。 下面就是如何代码检查这里pdf文件的签名 1.引入依赖 <dependency><groupId>org.projectlombok<…

C语言 coding style

头文件 The #define Guard #define的保护文件的唯一性&#xff0c;防止被多重包含 格式 : <PROJECT>_< FILE>_H_ PROJECT : XS FILE : MV_CTR 头文件的包含顺序 C System FilesOther LibrariesUser LibraryConditional include 作用域 局部变量 -变量定义时需要…

ElementUI之登录与注册

目录 一.前言 二.ElementUI的简介 三.登录注册前端界面的开发 三.vue axios前后端交互--- Get请求 四.vue axios前后端交互--- Post请求 五.跨域问题 一.前言 这一篇的知识点在前面两篇的博客中就已经详细详解啦&#xff0c;包括如何环境搭建和如何建一个spa项目等等知识…

#循循渐进学51单片机#指针基础与1602液晶的初步认识#not.11

1、把本节课的指针相关内容&#xff0c;反复学习3到5遍&#xff0c;彻底弄懂指针是怎么回事&#xff0c;即使是死记硬背也要记住&#xff0c;等到后边用的时候可以实现顿悟。学会指针&#xff0c;就是突破了C语言的一道壁垒。 2&#xff0c;1602所有的指令功能都应用一遍&#…

网络编程.

网络编程就相当于通过网络进行数据的传输&#xff0c;可以传给别人&#xff0c;不仅限于自己&#xff1b; 常见软件架构 BS优点 1.不需要开发客户端&#xff0c;只需要页面服务器 2.不用下载 缺点 如果应用过大 cs优点 1.画面精美 缺点 1.客户端&#xff0c;服务端都要…

【C++】静态成员函数 ( 静态成员函数概念 | 静态成员函数声明 | 静态成员函数访问 | 静态成员函数只能访问静态成员 )

文章目录 一、静态成员函数简介1、静态成员函数概念2、静态成员函数声明3、静态成员函数访问4、静态成员函数只能访问静态成员 二、代码示例 - 静态成员函数 一、静态成员函数简介 1、静态成员函数概念 静态成员函数归属 : 在 C 类中 , 静态成员函数 是一种 特殊的函数 , 该函数…