环境准备
安装编译工具链
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