• 【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'

     

  • 相关阅读:
    idea提升编码效率的12种插件
    NKOJ0828欢乐赛
    人力资源行业投资建议
    NovelD: A Simple yet Effective Exploration Criterion论文笔记
    c:预处理指令(#include、#define、#if等)
    基于SpringBoot的社区医院管理系统设计与实现(源码+lw+部署文档+讲解等)
    《PostgreSQL与MySQL:详细对比与分析》
    【Node.js】数据库配置与操作、Session实现原理、JWT实现原理:
    java获取音频,文本准转语音时长
    java毕业设计德纳影城售票管理Mybatis+系统+数据库+调试部署
  • 原文地址:https://blog.csdn.net/yannan20190313/article/details/139085557