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

2023-09-19 03:02:28

  本文介绍在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

更多推荐

Vue中如何进行表格排序与过滤

Vue中如何进行表格排序与过滤在Vue.js中,表格是一个常见的数据展示方式。很多时候,我们需要对表格中的数据进行排序和过滤,以提供更好的用户体验。本文将介绍如何在Vue中实现表格的排序和过滤功能,并提供相关的代码示例。准备工作在开始之前,我们需要准备一些基本的工作。首先,确保你已经安装了Vue.js,并且创建了一个V

Service 层异常抛到 Controller 层处理还是直接处理?

0前言一般初学者学习编码和[错误处理]时,先知道[编程语言]有一种处理错误的形式或约定(如Java就抛异常),然后就开始用这些工具。但却忽视这问题本质:处理错误是为了写正确程序。可是1啥叫“正确”?由解决的问题决定的。问题不同,解决方案不同。如一个web接口接受用户请求,参数age,也许业务要求字段是0~150之间整数

JMeter:断言之响应断言

一、断言的定义断言用于验证取样器请求或对应的响应数据是否返回了期望的结果。可以是看成验证测试是否预期的方法。对于接口测试来说,就是测试Request/Response,断言即可以针对Request进行,也可以针对Response进行。但大部分是对Response做断言。JMeter常见的断言元件如下:1.响应断言2.J

【MySQL系列】如何在MySQL中使用触发器?MySQL触发器详解

MySQL可以通过触发器来实现自动化业务逻辑和操作。触发器是一种在数据库表发生特定操作时自动执行的存储过程,能够响应特定事件,如INSERT、UPDATE和DELETE语句。本文将详细介绍MySQL中的触发器概念、创建和使用方法,以及一些注意事项。一、概念触发器是一种与表相关联的一段代码,它会在特定事件(INSERT、

利用 SOAR 加快事件响应并加强网络安全

随着攻击面的扩大和攻击变得越来越复杂,与网络攻击者的斗争重担落在了安全运营中心(SOC)身上。SOC可以通过利用安全编排、自动化和响应(SOAR)平台来加强组织的安全态势。这一系列兼容的以安全为中心的软件可加快事件调查和响应速度。SOAR平台提高了对所有安全数据的可见性,简化了IT流程,自动执行了与安全相关的手动任务,

[EI复现】基于主从博弈的新型城镇配电系统产消者竞价策略(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。⛳️座右铭:行百里者,半于九十。📋📋📋本文目录如下:🎁🎁🎁目录💥1概述📚2运行结果🎉3参考文献🌈4Matlab代码实现💥1概述新型城镇的发展需要实现能源结构清洁化和能源利用高效

{案例分析}**市 SA-接通率CCE参数优化报告

【问题描述】SA-无线接通率主要包含了SA-RRC连接建立成功率,SA-NG接口UE相关逻辑信令连接建立成功率和SA-QosFlow建立成功率;现网接通率99.27%,【问题分析】接通率主要问题在于QosFlow建立成功率相对较差,RRC建立成功率基本处于99.6%以上,NG接通率接近百分之百;【问题根因】针对于Qos

Jtti:在centos7中怎么使用yum如何删除php

要在CentOS7中使用YUM删除PHP,请执行以下步骤:打开终端:可以通过SSH远程连接到您的CentOS服务器,或者在本地访问终端。以超级用户(root)身份登录:如果不是root用户,可以使用以下命令切换到超级用户:sudosu然后输入管理员密码以获得root权限。删除PHP:您可以使用YUM删除PHP及其相关包

pytest进阶之conftest.py

前言前面几篇随笔基本上已经了解了pytest命令使用,收集用例,finxture使用及作用范围,今天简单介绍一下conftest.py文件的作用和实际项目中如是使用此文件!实例场景首先们思考这样一个问题:如果我们在编写测试用的时候,每一个测试文件里面的用例都需要先登录后才能完成后面的操作,那么们该如何实现呢?这就需要我

Python入门自学进阶-Web框架——42、Web框架了解-bottle、flask

WEB框架的三大组件:路由系统、控制器(含模板渲染)、数据库操作微型框架:依赖第三方写的socket,WSGI,本身功能少安装:pipinstallbottlepipinstallflask安装flask,同时安装了MarkupSafe、Werkzeug、Jinja2、itsdangerous。Werkzeug是Pyt

【Linux】生产者消费者模型

文章目录一、生产者消费者模型1.生产者消费者模型的概念2.生产者消费者之间的关系3.生产者和消费者的特点二、基于BlockingQueue的生产者消费者模型1.单生产单消费随机数任务计算器任务Task2.多生产多消费3.为什么生产者消费者模型高效三、基于环形队列的生产消费模型1.POSIX信号量2.基于环形队列的生产消

热文推荐