环境准备:安装GCC编译器
- 打开终端
Ctrl+Alt+T
启动终端(适用于Ubuntu/Debian等主流发行版)。 - 安装GCC
执行命令安装GNU编译器集合(GCC):sudo apt update && sudo apt install gcc # Ubuntu/Debian sudo dnf install gcc # Fedora/CentOS
- 验证安装
gcc --version # 输出类似 "gcc (Ubuntu 11.4.0) 11.4.0" 表示成功
编写C程序
- 创建源代码文件
nano hello.c # 使用nano编辑器,或替换为vim/vscode
- 输入示例代码
#include <stdio.h> int main() { printf("Hello, Linux!\n"); return 0; }
保存文件(
Ctrl+O
→Enter
→Ctrl+X
退出nano)。
编译C程序
-
基础编译命令
gcc hello.c -o hello # 将hello.c编译为可执行文件"hello"
gcc
: 编译器命令hello.c
: 源文件-o hello
: 指定输出文件名(默认为a.out
)
-
处理常见编译错误
- 语法错误:终端会提示错误位置(如
hello.c:3:5: error: expected ';'
),需返回编辑器修正。 - 头文件缺失:安装开发库,例如
sudo apt install libc6-dev
。
- 语法错误:终端会提示错误位置(如
运行程序
-
直接运行
./hello # 输出 "Hello, Linux!"
注意:若提示
Permission denied
,需添加执行权限:chmod +x hello
-
调试运行
使用gdb
调试(需先安装gdb
):gcc -g hello.c -o hello # 编译时加入调试信息 gdb ./hello # 启动调试器
常用命令:
break main
: 在main函数设断点run
: 运行程序next
: 单步执行print 变量名
: 查看变量值
进阶场景
-
编译多文件程序
- 文件1:
utils.c
- 文件2:
main.c
编译命令:gcc utils.c main.c -o program
- 文件1:
-
使用Makefile自动化
创建Makefile
文件:CC = gcc CFLAGS = -Wall TARGET = program all: $(TARGET) $(TARGET): utils.o main.o $(CC) $(CFLAGS) -o $@ $^ utils.o: utils.c $(CC) $(CFLAGS) -c utils.c main.o: main.c $(CC) $(CFLAGS) -c main.c clean: rm -f *.o $(TARGET)
运行:
make # 编译 ./program # 运行 make clean # 清理
常见问题解决
- 命令未找到(gcc: command not found):
重新安装GCC或检查PATH
环境变量。 - 程序运行时报错(如段错误):
使用valgrind
检测内存泄漏:valgrind ./hello
- 兼容性问题:
指定C标准编译(如C11):gcc -std=c11 hello.c -o hello
掌握Linux下C程序的编译运行是开发的基础,通过GCC编译器、Makefile工具和调试器,可高效完成开发任务,建议通过实际项目练习巩固技能,如开发命令行工具或系统应用。
引用说明: 基于GCC官方文档(gcc.gnu.org)及GNU Make手册(www.gnu.org/software/make),操作验证于Ubuntu 22.04 LTS环境,调试工具参考GDB官方指南(sourceware.org/gdb)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8554.html