环境准备
安装编译工具链
sudo apt update && sudo apt install build-essential # Ubuntu/Debian sudo dnf groupinstall "Development Tools" # Fedora/CentOS
- 核心组件:GCC编译器(
gcc
)、GDB调试器、标准C库(glibc)及头文件。 - 验证安装:执行
gcc --version
输出类似gcc (Ubuntu 11.4.0) 11.4.0
。
选择代码编辑器
- 轻量级:
nano
、vim
(终端适用) - 功能集成:VS Code(安装C/C++扩展)或 CLion(专业IDE)
编写第一个C程序
创建源文件
nano hello.c # 使用nano创建文件
输入以下代码:
int main() { // 程序入口函数 printf("Hello, Linux World!\n"); // 输出文本 return 0; // 返回成功状态 }
- 关键解释:
#include <stdio.h>
:引入标准I/O函数(如printf
)。main()
:程序执行的起点,返回int
类型值(0表示成功)。
编译与运行
编译源码
gcc hello.c -o hello # 编译hello.c,生成可执行文件hello
- 参数解析:
-o hello
:指定输出文件名(默认为a.out
)。- 无错误时无输出,表示编译成功。
运行程序
./hello # 执行当前目录下的hello文件
输出:Hello, Linux World!
调试基础(GDB示例)
编译调试版本
gcc -g hello.c -o hello_debug # -g选项添加调试信息
启动GDB
gdb ./hello_debug
常用命令:
break main
:在main
函数开头设断点run
:运行程序next
:单步执行print 变量名
:查看变量值quit
:退出
进阶示例:两数相加程序
代码(add.c
)
#include <stdio.h> int main() { int num1, num2, sum; printf("Enter two integers: "); scanf("%d %d", &num1, &num2); // 读取用户输入 sum = num1 + num2; printf("Sum: %d\n", sum); return 0; }
编译运行
gcc add.c -o add && ./add
输入示例:
Enter two integers: 5 7
Sum: 12
最佳实践与常见问题
- 代码规范:
- 缩进使用4空格(非Tab)
- 变量命名明确(如
user_count
而非uc
)
- 编译警告处理:
gcc -Wall -Wextra hello.c -o hello # 启用所有警告
修复警告可避免潜在错误(如未初始化变量)。
- 文件管理:
- 项目目录结构示例:
my_project/ ├── src/ # 源码 ├── bin/ # 可执行文件 └── Makefile # 自动化编译
- 项目目录结构示例:
学习资源推荐
- 官方文档:
- GNU C Manual
- Linux man pages(命令查询:
man gcc
)
- 经典书籍:
- 《C Programming Language》(K&R)
- 《Modern C》(Jens Gustedt)
- 在线工具:
- Compiler Explorer(实时查看汇编代码)
- GDB Online(在线调试器)
引用说明
- GCC官方文档:GNU Compiler Collection, gcc.gnu.org
- Linux标准库:The Open Group Base Specifications, IEEE Std 1003.1
- 代码规范:基于Linux内核编码风格(Kernel Coding Style)
重要提示:所有代码示例均在Ubuntu 22.04 LTS + GCC 11.4.0环境验证通过,建议读者定期更新系统以获取安全补丁和工具链优化。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6398.html