linux的vi和gcc编译命令
linux的vi和gcc编译命令详细介绍
在 Linux 中,vi/vim 是常用的文本编辑器,gcc 是 C/C++ 编译器。以下是两者的核心操作和典型场景:
一、vi/vim 基础操作(以编辑 C 代码为例)
1. 新建 / 打开文件
bash
hello.c
2. 编辑模式切换
- 命令模式(默认):按
i进入插入模式,开始编写代码c - 保存退出:按
Esc回到命令模式,输入:wq(保存并退出)或:q!(不保存强制退出)
3. 常用快捷键(命令模式)
dd:删除当前行yy:复制当前行p:粘贴/关键字:搜索(如/main查找main函数)u:撤销,Ctrl+r:重做
二、gcc 编译命令(以编译
hello.c 为例)
1. 一步编译并运行(最常用)
bash
gcc hello.c hello./hello
2. 分步骤编译(了解原理)
- 预处理(展开头文件、宏):bash
gcc hello.c hello.i - 编译为汇编:bash
gcc hello.i hello.s - 汇编为目标文件:bash
gcc hello.s hello.o - 链接为可执行文件:bash
gcc hello.o hello
3. 常用选项
| 选项 | 说明 |
|---|---|
-Wall |
开启所有警告(强烈建议添加) |
-O2 |
优化代码(提升运行速度,调试时慎用) |
-g |
包含调试信息(配合 gdb 调试) |
-I路径 |
指定头文件搜索路径(如 -I./include) |
-L路径 |
指定库文件搜索路径(如 -L./lib) |
-l库名 |
链接动态库(如 -lm 链接数学库) |
4. 多文件编译示例
bash
gcc main.c utils.c program
三、常见错误处理
- 语法错误(如缺少分号):
gcc 会提示具体行号,例如:hello.c:3:5: error: expected ';' before '}' - 链接错误(如未定义函数):
检查是否遗漏源文件或库,例如:utils.o: In function 'foo': utils.c:(.text+0x10): undefined reference to 'bar' - 警告处理:
添加-Wall后,注意警告(如未使用的变量),可能隐含逻辑问题。
总结
- vi/vim 适合终端内快速编辑代码,熟悉后效率极高;
- gcc 是 C/C++ 编译的核心工具,通过选项控制编译流程和优化。
新手建议从gcc 源文件 -o 输出 -Wall开始,逐步掌握进阶选项。