【Linux】centos7编写C语言程序,补充:使用yum安装软件包组

确保已安装gcc编译器

C语言程序,一般使用gcc进行编译,需确保已安装gcc。

若没有,可以使用yum安装gcc(版本4.8.5),也可以使用SCL源安装gcc(例如:版本9.3)。

安装gcc(版本9.3)参考:centos7升级gcc(版本9.3)

# 查看gcc版本
gcc --version

安装vim编辑器

centos7默认编辑器是vi。但,vim基于vi,且功能更多(例如:代码高亮),一般使用vim编辑器。

使用vim,需先安装。

# 查看yum仓库中关于vim的软件包
yum list vim*

# 安装vim
yum install vim -y


使用命令行编写C语言程序:

(1)打开 并 编辑 C语言源代码文件。
  • C语言源代码文件:文件名以 .c 结尾。
  • C程序中包含的头文件:文件名以 .h 结尾。

使用vi/vim打开C语言源代码文件,若没有该文件,则会创建。

# vi/vim打开C语言源代码文件(没有则会创建文件)
vim hello.c

在hello.c中写一段简单的C语言代码:输出hello, centos7。

#include <stdio.h>

int main(void)
{
    printf("hello, centos7\n");
}

(2)编译链接。
# 编译链接(从.c源代码文件到可执行文件)
gcc -o hello hello.c

补充:具体编译链接过程:(以源代码hello.c举例)

① 预处理:

  • C语言源代码文件(.c)--> 预处理后的C语言源代码文件(.i ) 。
  • 删除注释,处理头文件、宏定义等。
  • 命令:gcc -E hello.c -o hello.i

② 编译:

  • 预处理后的C语言源代码文件(.i )--> 汇编语言文件(.s)。
  • C语言转为汇编语言。通过语义、语法等解析,优化,汇总符号等。
  • 命令:gcc -S hello.i -o hello.s

③ 汇编:

  • 汇编语言文件(.s)--> 中间目标文件(.o)
  • 汇编语言转为二进制。生成段表、符号表等。
  • 命令:gcc -c hello.s -o hello.o

④ 链接:

  • 中间目标文件(.o)--> 可执行文件。
  • 通过与各种相关的库函数链接,合并各个段表、符号表,符号表重定位等。
  • 命令:gcc hello.o -o hello

(3)执行可执行文件。
# 执行可执行文件
./hello


补充:

1、C语言常用工具

(1)gdb:C语言常用的命令行调试工具。

(2)valgrind:C语言常用的检测内存、分析性能的调试工具。

(3)clang:C语言轻量级编译器。其目标之一是超越gcc。

2、centos7使用yum安装软件包组

可以使用yum安装软件包组"Development Tools",里面包含gcc,gcc-c++,make,git等。

参考:如何在 CentOS 和 RHEL 上使用 Yum 安装软件包组

# 查看可以使用yum安装的所有软件包组(也可以yum grouplist)
yum groups list

# 查看软件包组"Developments Tools"的信息
yum groups info 'Developments Tools'

# 安装软件包组"Developments Tools"
yum groups install 'Developments Tools'

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

htb_BoardLight

信息收集 nmap -sSVC 10.10.11.11开放80端口&#xff0c;将boardlight.htb写入/etc/hosts 同步进行子域名和目录扫描 子域名扫不到 这个目录扫描很奇怪哈&#xff0c;明明访问80端口有页面&#xff0c;就是扫不出来 直接浏览器访问80端口&#xff0c;四处看看&#xff0c;发…

Blazor入门-连接MySQL的简单例子:列出数据+简单查询

参考&#xff1a; ASP.NET Core 6.0 Blazor Server APP并使用MySQL数据库_blazor mysql-CSDN博客 https://blog.csdn.net/mzl87/article/details/129199352 本地环境&#xff1a;win10, visual studio 2022 community, mysql 8.0.33 (MySQL Community Server), net core 6.0 目…

DiffIR论文阅读笔记

ICCV2023的一篇用diffusion模型做Image Restoration的论文&#xff0c;一作是清华的教授&#xff0c;还在NIPS2023上一作发表了Hierarchical Integration Diffusion Model for Realistic Image Deblurring&#xff0c;作者里甚至有Luc Van Gool大佬。模型分三个部分&#xff0c…

Linux静态库、共享动态库介绍、制作及使用

参考学习&#xff1a;Linux下的各种文件 、动态库基本原理和使用方法&#xff0c;-fPIC选项的来龙去脉 、Linux静态库和动态库分析 文章写作参考&#xff1a;Linux共享库、静态库、动态库详解 - sunsky303 - 博客园 (cnblogs.com) 一.Linux共享库、静态库、动态库详解 使用G…

三十五岁零基础转行成为AI大模型开发者怎么样呢?

以下从3个方面帮大家分析&#xff1a; 35岁转行会不会太晚&#xff1f;零基础学习AI大模型开发能不能学会&#xff1f;AI大模型开发行业前景如何&#xff0c;学完后能不能找到好工作&#xff1f; 一、35岁转行会不会太晚&#xff1f; 35岁正处于人生的黄金时期&#xff0c;拥…

将四种算法的预测结果绘制在一张图中

​ 声明&#xff1a;文章是从本人公众号中复制而来&#xff0c;因此&#xff0c;想最新最快了解各类智能优化算法及其改进的朋友&#xff0c;可关注我的公众号&#xff1a;强盛机器学习&#xff0c;不定期会有很多免费代码分享~ 之前的一期推文中&#xff0c;我们推出了…

EI期刊的定金和尾款

当涉及到EI&#xff08;工程索引&#xff09;期刊发表并支付定金和尾款时&#xff0c;许多学者和研究人员可能会感到担忧&#xff0c;因为这涉及到一定的风险。在探讨这个话题时&#xff0c;我们需要考虑几个因素&#xff0c;包括期刊的声誉、可信度、出版质量以及作者的权益保…

wxPython Demo大全系列:ActivityIndicator控件分析

一、ActivityIndicator介绍 wx.ActivityIndicator 控件是 wxPython 中用于显示活动指示器的控件&#xff0c;通常用于指示程序正在执行某些后台任务或操作。它在用户界面中以动画的形式表现出活动状态&#xff0c;让用户知道应用程序正在进行处理而不是被挂起。 主要特点 可视…

【Paddle】稀疏计算的使用指南 稀疏ResNet的学习心得 (2) + Paddle3D应用实例稀疏 ResNet代码解读 (1.6w字超详细)

【Paddle】稀疏计算的使用指南 & 稀疏ResNet的学习心得 Paddle3D应用实例稀疏 ResNet代码解读 写在最前面一、稀疏格式简介1. COO&#xff08;Coordinate Format&#xff09;2. CSR&#xff08;Compressed Sparse Row Format&#xff09; 二、Paddle稀疏张量支持1. 创建 C…

管理能力学习笔记十一:如何通过反馈做好辅导

关于辅导的常见错误 辅导过于细致 辅导的首要障碍: 不相信对方的潜力需要有成长型思维&#xff1a;即便员工现在不OK&#xff0c;未来会更好因材施教&#xff1a;对不同风格的下属&#xff0c;采取不同的辅导风格 凡事亲力亲为 作为管理者&#xff0c;我们要做的是&#xf…

FDW(Foreign Data Wrapper)

在上一篇博客里&#xff0c;最末尾提到了 FDW。 FDW 到底是什么呢&#xff1f; 标准 FDW&#xff08;Foreign Data Wrapper&#xff09;遵循了 SQL/MED 标准&#xff0c;标准全称&#xff1a;ISO/IEC 9075-9 Management of External Data (SQL/MED) 2003 年&#xff0c;SQL…

25 使用MapReduce编程了解垃圾分类情况

测试数据中1表示可回收垃圾&#xff0c;2表示有害垃圾&#xff0c;4表示湿垃圾&#xff0c;8表示干垃圾。 统计数据中各类型垃圾的数量&#xff0c;分别存储可回收垃圾、有害垃圾、湿垃圾和干垃圾的统计结果。 &#xff08;存储到4个不同文件中&#xff0c;垃圾信息&#xff0…

使用 retrievers 在 Elasticsearch 中进行语义重新排序

作者&#xff1a;来自 Elastic Adam Demjen, Nick Chow 什么是语义重新排序&#xff1f; 语义重新排序&#xff08;semantic reranking&#xff09;是一种方法&#xff0c;它允许我们利用快速检索方法的速度和效率&#xff0c;同时在其上分层语义搜索。它还允许我们立即将语义…

【JS基础语法04】运算符分类以及运用

一&#xff1a;赋值运算符 1 类型 赋值运算符包括以下&#xff1a;、、-、*、/ 2 原理 &#xff0c;是将等号右边的数赋值给左边以为例(-、*、/和运算逻辑是相同的) let num 5 num2 等价于 let num 5 numnum2 //num7 二&#xff1a;一元运算符 1怎么判断运算符是几元…

GeoJson和WKT数据格式解析

1. GeoJson数据格式 GEOJSON是gis地图中常用的数据格式&#xff0c;制作地图时用于存储各种地理数据&#xff0c;使用时通过OpenLayer、Leaflet、mapLibre-gl或者Cesium加载GEOJSON即可渲染出GEOJSON中描述的地理要素。 GeoJSON是一种对各种地理数据结构进行编码的格式&#xf…

拍摄的视频内容怎么做成二维码?视频在线转换成二维码的方法

怎么把拍的个人才艺视频做成二维码呢&#xff1f;现在扫码看视频是实现内容快速传播的一种常用方式&#xff0c;所以很多人会将自己拍摄的视频制作二维码图片&#xff0c;然后分享给其他人扫码获取内容&#xff0c;对于内容的传播速度及用户体验有很好的提升&#xff0c;在很多…

Comfyui导出图片的命名技巧,日期文件夹

种子序号命名&#xff1a;%KSampler.seed% 图片宽高序号命名&#xff1a;%Empty Latent Image.width%x%Empty Latent Image.height% 年月日&#xff1a;%date:yyyy-MM-dd% 时分秒&#xff1a;%date:hhmmss% 年月日种子序号&#xff1a;%date:yyyy-MM-dd%/%KSampler.seed%

以果决其行,只为文化的传承

从他们每一个人的身上&#xff0c;我们看到传神的东西&#xff0c;就是他们都能用结果&#xff0c;去指引自己前进的方向&#xff0c;这正是我要解读倪海厦老师的原因&#xff0c;看倪海厦2012年已经去世&#xff0c;到现在已经十几年时间了&#xff0c;但是我们看现在自学中医…

TC3xx分析--如何提高系统运行效率(2)

目录 1.概述 2.限定符对于代码的影响 3.小结 1.概述 上文TC3xx分析--如何提高系统运行效率(1)-CSDN博客讲解了Tasking中lsl的某些关键定义&#xff0c;简述了Tricore寻址模式&#xff0c;接下来我们继续看&#xff0c;不同memory限定符对于代码的影响。 2.限定符对于代码的…

查询sqlserver表占用空间,查询当前数据库缓存的所有数据页面,查询当前数据库经常访问的表

查询某张表的磁盘占用情况&#xff1a; --第一种 EXEC sp_spaceused 表_测试表;--第二种 SELECT OBJECT_NAME(object_id) AS TableName,SUM(used_page_count) * 8 AS UsedSpaceKB FROM sys.dm_db_partition_stats GROUP BY object_id;查询当前数据库缓存的所有数据页面&#x…