总览流程
整个过程可以分为以下几个主要步骤:

- 检查环境:确认你的 CentOS 系统已经安装了 C 语言编译器(通常是 GCC)。
- 编写代码:使用文本编辑器创建一个
.c源文件。 - 编译程序:使用 GCC 编译器将源代码转换成可执行文件。
- 运行程序:在终端中执行编译生成的可执行文件。
- 调试与进阶:介绍如何使用调试器(GDB)和项目管理工具(Make)。
第一步:检查和安装编译器 (GCC)
GCC (GNU Compiler Collection) 是 Linux 下最常用的 C/C++ 编译器,在 CentOS 上,我们可以使用 yum 或 dnf 包管理器来安装它。
检查 GCC 是否已安装
打开你的终端(Terminal),输入以下命令:
gcc --version
- 如果已经安装:你会看到 GCC 的版本信息,类似这样:
gcc (GCC) 11.2.1 20250219 (Red Hat 11.2.1-9) Copyright (C) 2025 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - 如果未安装:你会提示
command not found: gcc。
安装 GCC
如果你的系统上没有 GCC,可以轻松地安装它。
-
对于 CentOS 7 及更早版本,使用
yum:
(图片来源网络,侵删)# 更新软件包列表 sudo yum update -y # 安装 gcc 和 gcc-c++ (C++ 编译器) sudo yum groupinstall "Development Tools" -y
groupinstall "Development Tools"是一个推荐的做法,它会一次性安装所有开发工具,包括 GCC, GDB, Make 等。 -
对于 CentOS 8 及更新版本,使用
dnf:# 更新软件包列表 sudo dnf update -y # 安装 Development Tools 组 sudo dnf groupinstall "Development Tools" -y
安装完成后,再次运行 gcc --version 就能看到版本信息了。
第二步:编写你的第一个 C 程序
现在我们来创建一个经典的 "Hello, World!" 程序。

选择文本编辑器
你可以使用任何你喜欢的文本编辑器,对于新手,推荐使用 vim 或 nano,因为它们是命令行自带的。
-
使用
nano(简单易用)nano hello.c
这会创建一个名为
hello.c的新文件,并打开nano编辑器。 -
使用
vim(功能强大,但需要学习)vim hello.c
进入
vim后,按i键进入插入模式,然后才能输入代码。
输入 C 代码
在编辑器中输入以下代码:
#include <stdio.h>
int main() {
// printf 函数用于在屏幕上打印文本
printf("Hello, Linux World!\n");
// main 函数返回 0 表示程序成功执行
return 0;
}
保存并退出
-
在
nano中:- 按
Ctrl + X。 - 它会询问你是否要保存,按
Y(Yes)。 - 按回车键确认文件名。
- 按
-
在
vim中:- 按
Esc键退出插入模式。 - 输入
wq然后按回车。(w代表 write/保存,q代表 quit/退出)。
- 按
你的 hello.c 文件就已经创建好了,你可以用 ls 命令查看它:
ls -l hello.c
第三步:编译 C 程序 (使用 GCC)
我们使用 gcc 命令将 hello.c 编译成机器可以执行的可执行文件。
gcc hello.c -o hello
让我们分解这个命令:
gcc: 调用 GCC 编译器。hello.c: 这是你的源文件。-o: 这是一个选项,意思是 "output" (输出)。hello: 这是你要生成的可执行文件的名称,如果不指定-o,GCC 默认会生成一个名为a.out的文件。
编译成功后,你不会看到任何提示信息,但目录下会多出一个文件,用 ls 查看:
ls -l
你会看到类似这样的输出:
-rw-r--r--. 1 user user 58 Oct 26 10:30 hello.c
-rwxr-xr-x. 1 user user 16744 Oct 26 10:31 hello <-- 这个就是可执行文件
注意 hello 文件的权限,它有 x (execute) 权限,这意味着你可以运行它。
第四步:运行你的程序
运行刚刚生成的可执行文件非常简单,只需要在终端中输入它的路径即可。
./hello
- 是一个非常重要的符号,它代表“当前目录”,因为在 Linux 中,如果你直接输入
hello,系统会去PATH环境变量里找这个命令,而你的hello文件在当前目录,所以必须用 来告诉系统“就在这里找”。
预期输出:
Hello, Linux World!
恭喜!你已经成功地在 CentOS 上编写、编译并运行了你的第一个 C 语言程序。
第五步:进阶主题
调试程序 (使用 GDB)
当你的程序出现 bug 时,你需要一个调试器,GDB (GNU Debugger) 是 Linux 下最强大的调试工具。
示例: 我们创建一个有 bug 的程序 buggy.c。
#include <stdio.h>
int main() {
int a = 10;
int b = 20;
int sum = a + b; // 故意写成 a - b
printf("The sum is: %d\n", sum);
return 0;
}
调试步骤:
-
编译时加上
-g选项:这个选项会生成包含调试信息的可执行文件。gcc buggy.c -o buggy -g
-
启动 GDB:
gdb buggy
-
在 GDB 中设置断点:我们想在
printf函数那里停下。(gdb) break main
-
运行程序:
(gdb) run
程序会运行到
main函数的开头并暂停。 -
单步执行:
(gdb) next # 执行下一行代码
-
查看变量值:
(gdb) print a # 查看变量 a 的值 $1 = 10 (gdb) print b $2 = 20 (gdb) print sum $3 = -10 # 你会立刻发现问题!
-
退出 GDB:
(gdb) quit
使用 Makefile 进行项目管理
当你的项目变得复杂,有多个源文件时,手动使用 gcc 命令会变得很麻烦。make 和 Makefile 可以自动化编译过程。
示例项目结构:
my_project/
├── main.c
├── utils.c
└── utils.h
-
utils.h(头文件)#ifndef UTILS_H #define UTILS_H int add(int a, int b); #endif
-
utils.c(函数实现)#include "utils.h" int add(int a, int b) { return a + b; } -
main.c(主程序)#include <stdio.h> #include "utils.h" int main() { int result = add(5, 3); printf("The result is: %d\n", result); return 0; }
创建 Makefile:
在 my_project 目录下创建一个名为 Makefile 的文件(注意大小写和没有后缀名)。
# 定义变量
CC = gcc
CFLAGS = -Wall -g
TARGET = my_program
SRCS = main.c utils.c
OBJS = $(SRCS:.c=.o)
# 默认目标,当只输入 make 时执行
all: $(TARGET)
# 链接规则:将 .o 文件链接成最终的可执行文件
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -o $@ $^
# 编译规则:将 .c 文件编译成 .o 文件
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
# 清理生成的文件
clean:
rm -f $(OBJS) $(TARGET)
# .PHONY 表示这些目标不是由文件生成的
.PHONY: all clean
使用 Makefile:
-
编译整个项目:
make
make会自动读取Makefile并执行相应的命令来编译所有源文件并链接它们。 -
运行程序:
./my_program
输出:
The result is: 8 -
清理文件:
make clean
这个命令会删除所有
.o文件和最终的可执行文件,方便你重新开始。
在 CentOS 上进行 C 语言开发,核心工具链就是 GCC (编译器) + GDB (调试器) + Make (构建工具),掌握了以上步骤,你就已经具备了在 CentOS 上进行 C 语言开发的基本能力,随着你项目的变大,Makefile 会成为你不可或缺的好帮手,祝你编程愉快!
