Linux的写代码基本步骤
一、文本编辑工具Vim的基本使用
第一步是用Vim写C语言代码。所以需要介绍一下Vim命令。早期的Linux使用vi作为系统默认的编辑器,而Vim是vi的升级版,主要区别是Vim可显示颜色,便于用户编辑,命令的使用差别不大。
Vim有3种模式:一般模式、编辑模式和命令模式。
(1)一般模式
一般模式就是在终端输入vim命令后进入的界面。
该模式只能移动光标位置和字符或字符串的复制、删除和粘贴等操作。
① 移动光标:
按键 | 作用 |
---|---|
shift + 6 |
移动到本行行首 |
shift + 4 |
移动到本行行尾 |
g + g |
移动到首行 |
G |
移动到尾行 |
② 删除、复制和粘贴:
按键 | 作用 |
---|---|
y + y |
复制光标所在行 |
d + d |
删除/剪切光标所在的那一行 |
p |
从光标所在行开始,向下粘贴已经复制或者粘贴的内容 |
注:字母的大小写一般起到的命令作用都是不同的。
(2)编辑模式
编辑模式顾名思义就是修改文本下的模式。
从编辑模式回到一般模式,只需按
Esc
键即可。
进入编辑模式:
按键 | 作用 |
---|---|
i |
在当前字符前插入 |
I |
在光标所在行的行首插入 |
a |
在当前字符后插入 |
A |
在光标所在行的行尾插入 |
o |
在当前行的下一行插入新的一行 |
O |
在当前行的上一行插入新的一行 |
(3)命令模式
命令模式可以搜索某个字符或者字符串,也可以实现保存、替换和退出。
在一般模式下,输入
:
或者
/
即可进入命令模式。
命令模式:
按键 | 作用 |
---|---|
/ word 或者 : word |
在光标之后查找一个字符串word,按 n 后继续搜索 |
:w |
保存文本 |
:q |
退出Vim |
:wq |
保存并退出 |
:w! |
强制保存,在root用户下,即使文本只读也可以完成保存 |
:q! |
强制退出,所有改动不生效 |
二、编写C语言源文件
(1)创建C语言编写的文件,然后会自动进入
一般模式
vim helloworld.c
(2)输入上面提到的
编辑模式
下的命令进行编写
(下图的示例用的是Ubuntu)
(3)输入
Esc
后进入命令模式进行保存并退出
一个C语言源文件就这样写好了
三、生成可执行文件并执行
(1)生成可执行文件原理
生成可执行文件有四步:预处理、编译、汇编和链接。
(可以看下图)
(2)基本生成方法
① 用gcc直接编译执行
gcc test.c -o test
将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名.
(不加-o默认可执行文件名为a.out)
gcc helloworld.c //生成可执行文件
./a.out //运行可执行文件
输入这个命令会发现有一个 a.out 文件,此文件便是可执行文件。想要运行该文件直接输入该文件的绝对路径即可。
② 用make命令实现
make的运行过程前,必须编写makefile文件。
它描述了软件包中文件之间的关系,提供更新每个文件的命令。make实际上是根据makefile来进行编译的。
1、编写makefile文件
vim makefile //编写makefile
2、makefile的基本格式
目标文件:依赖文件
命令
该格式只针对初学者运行这次简单的源代码实验,想扩展更多请自行查阅资料。
目标文件即是我需要生成的文件,依赖文件就是对于生成目标文件的“原材料”。
gcc的常用命令:
命令 | 作用 |
---|---|
|
将test.c预处理输出test.i文件 |
|
将预处理输出文件test.i汇编成test.s文件 |
|
将汇编输出文件test.s编译输出test.o文件 |
|
将编译输出文件test.o链接成最终可执行文件test |
makefile内容编写:
helloworld:helloworld.o //.o链接成可执行文件
gcc helloworld.o -o helloworld //命令前需要输入Tab
helloworld.o:helloworld.s //.s汇编成.o
gcc -c helloworld.s -o helloworld.o
helloworld.s:helloworld.i //.i编译成.s
gcc -S helloworld.i -o helloworld.s
helloworld.i:helloworld.c //.c预处理成.i
gcc -E helloworld.c -o helloworld.i
3、使用make命令
在makefile所在文件的目录下使用命令make,它就会自动执行makefile里面的内容。
4、执行可执行文件
在 ① 所讲过的直接输入其路径
(即./helloworld)
,即可运行可执行文件helloworld 。
③用gdb调试器运行
1、启动gdb调试器
gdb 可执行文件
此命令是启动gdb调试器的命令,因此我们先需要源代码生成可执行文件。
gcc -g helloworld.c -o helloworld
用此命令生成可执行文件。
切记不可用上面所讲的
gcc helloworld.c
来生成,否者会出错。
2、运行可执行文件
gdb的常用命令:
命令 | 作用 |
---|---|
|
显示已第n行为中心的10行代码 |
|
在此行n添加断点 |
|
来在调试时查看寄存器、断点、观察点和信号等信息 |
|
运行程序,遇到断点会停止 |
|
打印当前变量n的值 |
|
单步调试(不可进入子函数) |
|
单步调试(可以进入子函数) |
|
程序运行到下一个断点或直到程序结束 |
|
退出gdb |
gdb调试器主要用于调试较长较复杂的代码,这里作为扩展。
需要转载请标明出处