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


    确保已安装gcc编译器

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

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

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

    1. # 查看gcc版本
    2. gcc --version

    安装vim编辑器

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

    使用vim,需先安装。

    1. # 查看yum仓库中关于vim的软件包
    2. yum list vim*
    3. # 安装vim
    4. yum install vim -y


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

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

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

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

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

    #include

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

    (2)编译链接。
    1. # 编译链接(从.c源代码文件到可执行文件)
    2. 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)执行可执行文件。
    1. # 执行可执行文件
    2. ./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 安装软件包组

    1. # 查看可以使用yum安装的所有软件包组(也可以yum grouplist)
    2. yum groups list
    3. # 查看软件包组"Developments Tools"的信息
    4. yum groups info 'Developments Tools'
    5. # 安装软件包组"Developments Tools"
    6. yum groups install 'Developments Tools'

     

  • 相关阅读:
    矩阵初等变换整理
    Git GitHub GitLab
    华为od德科面试数据算法解析 2022-6-27 字符串片段反转
    自然语言处理实战项目18-NLP模型训练中的Logits与损失函数的计算应用项目
    过滤器模式 rust和java的实现
    基于Struts2+JavaBean+JSP+MySQL的宿舍寝室管理系统设计与实现
    vue pc项目 router.js 配置详解
    nginx下载与安装教程
    Python 局部变量global,全局变量local ,非局部变量nonlocal ,Enclosing function locals作用域
    C#使用DevExpress中的chartcontrol
  • 原文地址:https://blog.csdn.net/yannan20190313/article/details/139085557