信创之国产浪潮电脑+统信UOS操作系统体验2:安装visual studio code和cmake搭建C++开发环镜

一、引言

在linux以及unix下开发C++程序很多人都做过,笔者以前是通过vi编辑器编辑或者在windows下编辑甚至编译再将源文件ftp保存到服务器上,再在服务器端使用gcc编译,用gdb调试,但现在使用的国产电脑,客户端就是linux,以前的方式已经不适合了。为此需要一个在linux下可以使用的IDE开发和构建环境,笔者选择的是Visual Studio Code编辑器。

Visual Studio Code是一款由微软开发的免费轻量级、快速、易扩展的跨平台代码编辑器。它支持多种编程语言和框架,包括JavaScript、TypeScript、Python、C++等。Visual Studio Code具有智能感知、调试、Git版本控制、插件扩展等丰富的功能,可以用于开发Web应用程序、桌面应用程序、移动应用程序等,也可以作为普通文本编辑器使用。

其实还有很多其他linux下的IDE工具如Eclipse CDT、JetBrains CLion、Code::Blocks、NetBeans等,笔者之所以选择Visual Studio Code,是因为它是轻量级的同时支持C++和Python的linux下IDE工具。

使用Visual Studio Code开发C++程序,需要安装C++相关插件来配置C++的编译环境,安装GCC编译器后,将其路径添加到Visual Studio Code的配置文件中,然后就可以在Visual Studio Code中编写和编译C++程序了。

二、安装vscode

visual studio code的安装非常简单,直接在UOS的软件仓库中选择visual studio code,点击安装即可。这是软件仓库中关于vscode的介绍:
在这里插入图片描述
在统信操作系统下vscode安装的目录为:/opt/apps/com.visualstudio.code.uos/files/code 。

三、安装C++扩展

visual studio code安装完成后,还需要安装支持C++的扩展,可以通过搜索C++关键词找到相关扩展
在这里插入图片描述
笔者安装了如下扩展:
在这里插入图片描述
注意:上面安装的扩展下面几个颜色暗淡一些的表示禁用了,需要通过后面的配置按钮打开,否则后续不能使用。

四、安装CMake

在linux下可以直接使用gcc或g++进行文件编译,但如果一个工程涉及文件过多,用gcc来进行编译非常不方便,为此需要使用makefile来组织管理编译处理。

make是一个在Unix和linux系统上常用的构建工具,它使用Makefile来定义构建过程。Makefile是一个包含一系列规则的文本文件,每个规则描述了如何生成一个或多个目标文件,记录了编译和链接C++代码所需的规则和依赖关系。通过Makefile可以告诉编译器如何编译每一个源文件,并指定链接所需的目标文件和库文件。Makefile还具有智能重编译的功能,当项目中的某个文件发生修改时,它可以自动检测出需要重新编译的文件,从而提高编译效率。使用Makefile可以简化编译过程,减少手动操作,特别适用于大型项目的编译和维护。

以前在windows下使用Visual C++时,通过适当的参数配置就可以进行编译,无需自己编写makefile,但visual studio code不支持这种能力,需要开发者自己编写makefile。为了能够提高makefile编写的效率,以及支持跨平台的构建,可以使用CMake来进行makefile的生成。

CMake是一个跨平台的构建自动化工具,它使用CMakeLists.txt的脚本语言来定义构建过程。通过CMake可以生成适合不同平台和编译器的Makefile,并使用它们来构建项目,无需手动编写平台特定的构建脚本。CMake具有更高级的抽象能力,允许使用简洁的语法描述项目的结构和构建需求。CMake相对于make的优势在于它的跨平台性和更高级的抽象能力,另外CMake还提供了更多的功能,如自动查找依赖、模块化的项目结构和易于维护的构建配置。

前面安装visual studio code扩展只是为了利用已有的gcc编译器和CMake进行相关编译处理,如果机器上未安装gcc、g++编译器和CMake,则需要另外安装。统信操作系统安装后,自带了gcc、g++和make,但没有安装CMake,需要单独安装。CMake安装和安装visual studio code扩展没有顺序依赖关系。

下面是cmake的安装指令:

sudo apt install cmake

安装后cmake和make都在/usr/bin目录下。

五、配置cmake

在visual studio code界面打开一个要编译工程的文件夹按F1,出现下面的窗口:
在这里插入图片描述
选择CMake快速入门(Quick start),出现如下界面:
在这里插入图片描述
输入项目名称(在Visual Studio Code中,项目的名称是自定义的,也就是工程文件名和最终编译后的执行文件名,一般建议根据创建项目时设置的文件夹名称来确定的),笔者的文件夹名为test,将项目名命名为hello,输入回车后选择项目语言类型,选择C++项目:
在这里插入图片描述
选择语言类型后出现编译目标文件类型,选择创建可执行文件:
在这里插入图片描述
cmake将生成一个初始的CMakeKists.txt文件(注意上述截图文件夹中的bin、build、包含make的所有文件是笔者在此之前测试生成的),按照上述步骤第一次生成后的真正文件夹内容及CMakeKists.txt文件如下图所示:
在这里插入图片描述
下面就是根据上述配置步骤自动生成的CMakeKists.txt文件内容:

cmake_minimum_required(VERSION 3.0.0)
project(hello VERSION 0.1.0 LANGUAGES C CXX)include(CTest)
enable_testing()add_executable(hello main.cpp)set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)

六、编译文件

生成了CMakeKists.txt文件后,就可以做后续的编译操作,具体步骤如下:

  1. 在VSCode中进入终端操作

在VSCode中打开项目文件夹后,在顶部菜单栏选择“Terminal(终端)” -> “New Terminal(新建终端)”打开终端,进入终端操作证模式,如下图:
在这里插入图片描述
2. 在终端中进入CMakeKists.txt文件所在目录,执行cmake指令,如下图所示:
在这里插入图片描述
注意cmake指令后的参数为CMakeKists.txt文件所在目录,这里用的命令是“cmake .”,是因为在终端中进入了CMakeKists.txt文件所在目录,所以用代表当前目录的点就可以,如果是进入了子目录,就可以用两个点的父目录来进行操作。下面是笔者机器上执行的指令及输出内容:

administrator@jwp:/data/home/administrator/E_DRIVER/vcwork/test$ ls CMake*.txt
CMakeLists.txt
administrator@jwp:/data/home/administrator/E_DRIVER/vcwork/test$ cmake .
-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /data/home/administrator/E_DRIVER/vcwork/test
administrator@jwp:/data/home/administrator/E_DRIVER/vcwork/test$ 

执行完cmake后,生成了对应的makefile文件。

  1. 执行make构建目标文件
    成功执行cmake后,就生成了构建工程目标文件的相关makefile文件,此时只需要在makefile文件所在目录不带参数执行make指令即可,如下图:
    在这里插入图片描述

七、小结

本文详细介绍了在国产浪潮电脑+统信UOS操作系统中安装visual studio code和cmake搭建C++开发环镜的过程及案例,相关的操作同样适用于其他linux操作系统。

写博不易,敬请支持

如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

更多关于信创之国产浪潮电脑+统信UOS操作系统体验的内容请参考专栏《国产信创之光》的其他文章。

关于老猿的付费专栏

  1. 付费专栏《https://blog.csdn.net/laoyuanpython/category_9607725.html 使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《 https://blog.csdn.net/LaoYuanPython/article/details/107580932 使用PyQt开发图形界面Python应用专栏目录》;
  2. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10232926.html moviepy音视频开发专栏 )详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/107574583 moviepy音视频开发专栏文章目录》;
  3. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10581071.html OpenCV-Python初学者疑难问题集》为《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的伴生专栏,是笔者对OpenCV-Python图形图像处理学习中遇到的一些问题个人感悟的整合,相关资料基本上都是老猿反复研究的成果,有助于OpenCV-Python初学者比较深入地理解OpenCV,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/109713407 OpenCV-Python初学者疑难问题集专栏目录 》
  4. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10762553.html Python爬虫入门 》站在一个互联网前端开发小白的角度介绍爬虫开发应知应会内容,包括爬虫入门的基础知识,以及爬取CSDN文章信息、博主信息、给文章点赞、评论等实战内容。

前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的学习使用。

对于缺乏Python基础的同仁,可以通过老猿的免费专栏《https://blog.csdn.net/laoyuanpython/category_9831699.html 专栏:Python基础教程目录)从零开始学习Python。

如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。

老猿Python,跟老猿学Python!

☞ ░ 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython ░

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

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

相关文章

迄今为止丨ChatGPT最强指令,一个可以让机器人生成机器人的Prompt,价值百万!

原文: 【ChatGPT调教】ChatGPT最强指令、让机器人为你生成机器人!-CSDN博客 说明:最好看原文 昨天,发现了一条可能是迄今为止,我见过最牛的,商业价值最高的ChatGPT指令。 通过这条指令,可以…

正点原子嵌入式linux驱动开发——U-boot启动流程详解

在上一篇笔记中详细分析了uboot的顶层Makefile,理清了uboot的编译流程。本章来详细的分析一下uboot的启动流程,理清uboot是如何启动的。通过对uboot启动流程的梳理,可以掌握一些外设是在哪里被初始化的,这样当需要修改这些外设驱动…

【搭建私人图床】使用LightPicture开源搭建图片管理系统并远程访问

文章目录 1.前言2. Lightpicture网站搭建2.1. Lightpicture下载和安装2.2. Lightpicture网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 现在的手机越来越先进,功能也越来越多,而手机…

Linux程序崩溃时的信号量(signal)说明

一、概念说明 在程序崩溃的时候,我们将会获取到两个信息: • signal: 信号量,下文将会详细的说明不同的信号量及其含义 • code: 错误码, 除了几个所有信号量(signal) 公共的错误码(code),一般不同信号量(signal)有特定的错误码(code)&#x…

oracle OCP OCM MySQL OCP认证难吗?

好多人在初次考OCP时,不知道如何选择,本文让姚远ACE老师为大家总结一下吧! 选择OCP认证时要注意的问题: 1,授课老师师资经验(非常重要) 2,课程大纲 3,试听课程 4&am…

7.wifi开发【智能家居:终】,实践总结:智能开关,智能采集温湿,智能灯。项目运行步骤与运行细节,技术归纳与提炼,项目扩展

一。项目运行步骤与运行细节 1.项目运行步骤(一定有其他的运行方式,我这里只提供一种我现在使用的编译方式) (1)项目运行使用软件与技术: 1.Virtual linux 使用这个虚拟机进行程序的编译 2.Makefile与shl…

10.4| QT实现TCP服务器客户端搭建的代码,现象

头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget>#include<QTcpServer> //服务器头文件 #include<QTcpSocket> //客户端头文件#include<QList> //链表容器 #include<QMessageBox> …

10.3 C++运算符重载实现的过程,代码

目录 运算符重载背景&#xff08;operator&#xff09; 定义 重载的方法 不能重载的运算符 运算符重载注意事项 代码实现 运行结果 运算符重载背景&#xff08;operator&#xff09; 自定义的类中&#xff0c;系统默认只提供两个运算符供用户使用&#xff0c;分别是赋值…

spark on hive

需要提前搭建好hive&#xff0c;并对hive进行配置。 1、将hive的配置文件添加到spark的目录下 cp $HIVE_HOME/conf/hive-site.xml $SPARK_HOME/conf2、开启hive的hivemetastore服务 提前创建好启动日志存放路径 mkdir $HIVE_HOME/logStart nohup /usr/local/lib/apache-hi…

合并不同年度收入数据-外连接

案例需求&#xff1a;统计2019年和2020年的客户销售收入并求和 思路&#xff1a;使用pandas读取excel数据横向连接&#xff0c;使用sum()含函数求和 代码如下&#xff1a; 1、使用pandas读取excel数据 2、由于两个表一个是"客户名称"&#xff0c;一个是客户描述,使…

PHP 行事准则:allow_url_fopen 与 allow_url_include

文章目录 参考环境allow_url_fopenallow_url_fopen 配置项操作远程文件file 协议 allow_url_includeallow_url_include 配置项 allow_url_include 与 allow_url_fopen区别联系默认配置配置项关闭所导致异常运行时配置ini_set()限制 参考 项目描述搜索引擎Bing、GoogleAI 大模型…

毕设-原创医疗预约挂号平台分享

医疗预约挂号平台 不是尚医通项目&#xff0c;先看项目质量&#xff08;有源码论文&#xff09; 项目链接&#xff1a;医疗预约挂号平台git地址 演示视频&#xff1a;医疗预约挂号平台 功能结构图 登录注册模块&#xff1a;该模块具体分为登录和注册两个功能&#xff0c;这些…