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

news2025/1/11 7:10:08

  本文介绍在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.coloradmin.cn/o/1021376.html

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

相关文章

Springboot项目升级2.2.x升至2.7.x

依赖管理 spring-boot-starter-parent 升级为2.7.1 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId> <!-- 升级为2.7.x的版本--><version>2.7.1</version>…

【STM32】WWDG—窗口看门狗

在一个设定好的区间进行喂狗 与独立看门狗不同的是&#xff0c;独立看门狗只需要在计时到0之前喂狗。而窗口看门狗需要在设定好的区间内进行喂狗&#xff0c;否则进行reset。 下限 递减计数器不断的往下递减计数&#xff0c;当减到一个固定值 0X40时还不喂狗的话&#xff0c…

《ADS2011射频电路设计与仿真实例》功率放大器设计的输入输出匹配

徐兴福这本书的6.6 Smith圆图匹配这一节中具体匹配时&#xff0c;直接给出了电容与串联微带的值&#xff0c;没有给出推导过程&#xff0c;我一开始以为是省略了详细推导过程&#xff0c;后来发现好像基本上是可以随便自己设的。以输入匹配&#xff08;书本6.6.4输入匹配电路的…

​安徽农业大学《乡村振兴战略下传统村落文化旅游设计》许少辉博士新著——2023学生开学季辉少许流动站

​安徽农业大学《乡村振兴战略下传统村落文化旅游设计》许少辉博士新著——2023学生开学季辉少许流动站

Archicad 26 for Mac - 打造卓越的3D建模工具

随着建筑设计和规划的日益复杂化&#xff0c;寻找一款功能强大且易于使用的3D建模工具变得至关重要。而Archicad 26 for Mac正是您在建筑设计领域中的理想选择。无论您是一名建筑师、室内设计师还是建筑工程师&#xff0c;Archicad 26都将成为您的得力助手。 作为一款全球领先…

计算机竞赛 深度学习 python opencv 动物识别与检测

文章目录 0 前言1 深度学习实现动物识别与检测2 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络 3 YOLOV53.1 网络架构图3.2 输入端3.3 基准网络3.4 Neck网络3.5 Head输出层 4 数据集准备4.1 数据标注简介4.2 数据保存…

python脚本(渗透测试)

python爬取edusrc 通过此脚本&#xff0c;可以爬取edusrc的目标信息&#xff0c;生成目标字典&#xff0c;为下一步开发自动化测试工具做准备 import queue import threading import timeimport requests from bs4 import BeautifulSoup import re def get_edu_name():while …

算法-单词搜索 II

算法-单词搜索 II 1 题目概述 1.1 题目出处 https://leetcode.cn/problems/word-search-ii/description/?envTypestudy-plan-v2&envIdtop-interview-150 1.2 题目描述 2 DFS 2.1 解题思路 每个格子往上下左右四个方向DFS&#xff0c;拼接后的单词如果在答案集中&…

【测试开发】基础篇 · 专业术语 · 软件测试生命周期 · bug的描述 · bug的级别 · bug的生命周期 · 处理争执

【测试开发】基础篇 文章目录 【测试开发】基础篇1. 软件测试生命周期1.1 软件生命周期1.2 软件测试生命周期 2. 描述bug3. 如何定义bug的级别3.1 为什么要对bug进行级别划分3.2 bug的一些常见级别 4. bug的生命周期5. 产生争执这么怎么办&#xff08;处理人际关系&#xff09;…

启山智软/电商商城100%开源

介绍 想要了解代码规范&#xff0c;学习商城解决方案&#xff0c;点击下方官网链接联系客服 作者&#xff1a;启山智软 官网及博客&#xff1a;启山智软官网、CSDN、掘金、gitee 简介&#xff1a;启山智软目前开发了全渠道电商商城系统&#xff0c;本商城是基于SpringCloud的商…

阿里云配置炼丹环境全流程 (从购买云服务器到成功运行代码)

自己的小破笔记本实在炼不动高品阶的丹药, 不得已用了云服务器. 捣鼓了一天, 终于是成功把代码在云服务器上跑起来了. 将这一过程记录一下, 方便之后参考. 第一步, 创建云服务器实例 找到控制台, 点 “云服务器 ECS”, 然后点击创建实例. 会出现以下界面: 这里如何选择合适的…

竞赛 基于深度学习的人脸性别年龄识别 - 图像识别 opencv

文章目录 0 前言1 课题描述2 实现效果3 算法实现原理3.1 数据集3.2 深度学习识别算法3.3 特征提取主干网络3.4 总体实现流程 4 具体实现4.1 预训练数据格式4.2 部分实现代码 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 毕业设计…

RocketMQ编程使用和应用场景

RocketMQ消息模型 一、RocketMQ客户端基本使用 引入RocketMQ依赖 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version>4.9.5</version> </dependency>ncy> RocketMQ…

哈希及哈希表的实现

目录 一、哈希的引入 二、概念 三、哈希冲突 四、哈希函数 常见的哈希函数 1、直接定址法 2、除留余数法 五、哈希冲突的解决 1、闭散列 2、开散列 一、哈希的引入 顺序结构以及平衡树中&#xff0c;元素关键码与其存储位置之间没有对应的关系&#xff0c;因此在查找…

【Java 基础篇】Java标准输入流详解:读取用户输入的完整指南

Java是一门流行的编程语言&#xff0c;常用于开发各种类型的应用程序&#xff0c;包括控制台应用、桌面应用、Web应用等。在这些应用中&#xff0c;与用户进行交互是一项重要的任务。本文将重点介绍Java标准输入流&#xff0c;它是Java程序中用于从用户获取输入的关键组成部分。…

【unity小技巧】Unity 存储存档保存——PlayerPrefs、JsonUtility和MySQL数据库的使用

文章目录 前言PlayerPrefs一、基本介绍二、Demo三、优缺点 JsonUtility一、基本使用二、Demo三、优缺点 Mysql&#xff08;扩展&#xff09;完结 前言 游戏存档不言而喻&#xff0c;是游戏设计中的重要元素&#xff0c;可以提高游戏的可玩性&#xff0c;为玩家提供更多的自由和…

【JavaScript】video标签配置及相关事件:

文章目录 一、标签配置&#xff1a;二、事件&#xff1a;三、案例&#xff1a; 一、标签配置&#xff1a; 标签名描述src要播放的路径地址autoplay是否自动播放&#xff0c;默认值是false,&#xff08;Boolean&#xff09;loop是否循环播放&#xff0c;默认值是false,&#xf…

Hbase工作原理

Hbase&#xff1a;HBase 底层原理详解&#xff08;深度好文&#xff0c;建议收藏&#xff09; - 腾讯云开发者社区-腾讯云 Hbase架构图 同一个列族如果有多个store&#xff0c;那么这些store在不同的region Hbase写流程&#xff08;读比写慢&#xff09; MemStore Flush Hbas…

arm day2(9.15)数据操作指令,跳转指令,特殊功能寄存器指令,+XMind

作业 1.求最大公约数&#xff1a; .text .global _start _start:mov r0,#0x9mov r1,#0x15bl Loop Loop:cmp r0,r1 比较r0寄存器和r1寄存器的中的值beq stop 当两数相同时,退出程序subhi r0,r0,r1 r0>r1 r0 r0 - r1subcc r1,r1,r0 r0<r1 r1 r1 - r0mov pc,lr 恢复现…

自动驾驶行业观察之2023上海车展-----整体发展趋势

1.行业趋势 新能源势不可挡。 本次车展上首发了150多款新车&#xff0c;约有100款是新能源车;跨国车企全面电动化&#xff0c;但日韩系布局相对缓慢&#xff1b; 2.自主品牌 品牌持续向上 本届车展自主品牌开始疯狂向高端内卷&#xff0c;高端化态度坚决 &#xff08;包括仰…