1. 编辑器vim
编辑器vim用于编辑代码文件,搭建专业的vim开发环境请参考作者此篇文章:
vim包含12种总模式,常用:
- 正常模式:移动光标 / 删除字或行 / 移动复制...
- 插入模式:编辑代码
- 底行模式:保存和退出 / 文件替换 / 查找 / 列出行号...(偏命令风格
三种模式的切换方式如下图:

基本操作:
- 进入vim:
vim + 文件名,默认正常模式 - 保存文件:
:w - 退出vim:
:q(保存并退出:wq
正常模式重点命令集:
- 上下左右:
kjhl - 删除字符:
x - 复制:
yw - 替换:
r - 撤销和恢复:
u和ctrl+r - 跳至指定行首:
#G(#为行数
底行模式重点命令集:
- 显示行号:
set nu - 查找:
/ + 字符或? + 字符 - 跳到某一行:
#(行号
补充知识:
vim + 新文件名::wq会创建新文件,保存并退出;:q退出且不创建文件- 多窗口编辑:
vs + 文件名;先退出光标所在终端;切换窗口:ctrl + ww - 打开文件+定位行:
vim 文件名 +行号(eg:vim code.cpp +11进入code.cpp且定位第11行 - shell功能:
!v查询最近的v开头(vim)指令 - 视图模式:正常模式
ctrl + v进入,支持选区,shift + i可批量添加注释,按esc生效
2. 编译器:gcc / g++
C/C++程序的编译过程:
预处理(宏替换/去注释/条件编译/头文件展开编译(高级语言->汇编语言汇编(汇编语言->二进制链接(所有.o文件链接为可执行文件
条件编译:
- 含义:根据预定义条件决定代码的哪一部分参与编译 / 被忽略(编译期静态裁剪
- 用途:内核源码 / 软件专业度版本 / 应用适配不同平台
C++源码示例:

gcc / g++编译选项:
gcc/g++ [选项] 编译文件 [选项] [目标文件]
编译过程分步骤展示:
step1:创建文件

step2:预处理
-E预处理完成后截停

step3:编译
-S编译完成后截停

step4:汇编
-c汇编完成后截停

step5:链接

step6:运行

补充:
- 只执行
-o会一步到位编译为可执行文件;开发中更常用的是逐个编译-c后再链接-o(编译效率更高 - Linux的可执行文件可不加后缀,通过权限和内容识别
3. 动静态库和链接方式
一些概念:
- 动态库:库文件后缀
.so (linux/.dll (windows - 静态库:库文件后缀.
a (linux/.lib (windows - 库名:去掉文件
前后缀剩下的部分(eg: libc.so,去掉前缀lib,后缀.so,得到库名c
动态/静态链接:
- 动态链接:
运行时跳转到库代码执行库函数 - 静态链接:
链接时拷贝库方法到程序中,脱离静态库独立运行
验证:
创建一个.cpp文件:

编译成可执行程序,可以看到默认是动态链接的,大小为16528字节:

静态链接需要下载静态库和选项-static
编译成可执行程序,可以看到是静态链接且大小为2403984字节:

运行:

总结 :动态链接形成的可执行程序体积更小 / 节省内存和磁盘 / 对库的依赖度大;静态链接相反
感谢阅读,我们下篇见。