DATE 3
编辑;
保存关闭;
查找;
在底行模式下输入:
/查找的内容 【从光标所在行往下进行查找】
?查找的内容 【从光标所在行往上进行查找】
替换:
对于某一行的替换:首先把光标定位到这一行
s / 替换前的内容 / 替换后的内容 只替换第一个
s / 替换前的内容 / 替换后的内容 / q 全行替换
对于从第 m 行到第 n 行之间的内容进行替换
m,ns / 替换前的内容 / 替换后的内容 只替换每一行的第一个
m,ns / 替换前的内容 / 替换后的内容 / q 全行替换
复制:
单行复制:
在光标停留的那一行,按下 yy 键;
多行复制:
复制光标停留那一行往下n行,在那一行按下 nyy 键;
粘贴:
光标停留需要粘贴的前一行,再按下 p 键;
删除:
删除行:dd
删除某个字符:
x是往后删除; nx是往后删除n个字符;
X是往前删除; nX是往前删除n个字符;
撤销:
按下 u 键;
格式:
写C语言程序的时候可以用到:n==自动缩进调整格式n行;
移动光标:
nG:光标移动到第n行;
n→:光标向右移动n个字符;
.. :上一次目录;
. :当前目录;
* :通配符;
gcc编译工具链:
1、什么是编译器:
机器只能够识别0和1的机器语言,不能识别高级语言编写的程序;
高级语言编写的程序==》机器语言;
编译器承担翻译官的角色!【编译器是一个程序】
2、为什么需要编译器;
3、没有编译器行不行;
4、有了编译器有什么好处:
让人类可以编写更合适人类思维的高级语言,而不是编写机器语言
的程序,也不用考虑怎么将高级语言转化成机器语言;
gcc编译器,也是一个交叉编译器!
就是编译和运行的平台不一样;
从高级语言==》机器语言要经过以下几个步骤:
1、预处理:gcc -E 文件名.c -o 文件名.i
处理什么?
①头文件:#include <stdio.h>
②宏定义:#define MAX 10
③条件编译:#ifdef ..#else ...#endif
④注释;
目的:帮助编译器处理一些不是核心的东西,让编译器处理最核
心的东西;【华为和外包公司的关系】
2、编译阶段:
将文件编译成汇编文件(.s);
① gcc -S demo.i
② gcc -S demo.i -o demo.s
③ gcc -S demo.c
④ gcc -S demo.c -o demo.s
3、汇编:
将文件生成机器码(.o文件);
gcc -c demo.c
gcc -c demo.i (前提是有.i文件)
gcc -c demo.s (前提是有.s文件);
4、链接阶段:
平常用的是:gcc demo.c 【默认生成a.out文件】
gcc demo.c -o demo

过程:
[root@localhost zgw]# gcc -E demo.c -o demo.i //预处理(demo.c-->demo.i)
[root@localhost zgw]# ls
0513 666 demo.c demo.i new
[root@localhost zgw]# gcc -S demo.i //编译(demo.i-->demo.s)
[root@localhost zgw]# ls
0513 666 demo.c demo.i demo.s new
[root@localhost zgw]# gcc -c demo.s -o demo.o //汇编(demo.s-->demo.o)
[root@localhost zgw]# ls
0513 666 demo.c demo.i demo.o demo.s new
[root@localhost zgw]# gcc demo.o -o demo //链接(demo.o-->demo)
[root@localhost zgw]# ls
0513 666 demo demo.c demo.i demo.o demo.s new
[root@localhost zgw]# ./demo //执行
hello world!
静态库的封装:
man手册:--------鸟哥私房菜P123
实现的需求:能够调用自己写的加法函数;
1、编辑要封装到库里面的函数实现;add.c
①需要两个加数;
②对两个加数进行相加;
③返回或者输出加数和;
2、把add.c封装成库;
①生成目标文件;
gcc -c demo.c
②将目标文件封装成库;
ar rcs libadd.a add.o
libadd.a:lib是前缀,表明这是一个库;add是库的名字, .a表
明是一个静态库;
3、调用封装好的函数库。

实践过程
touch demo.c; 【新建文本,主函数】
touch add.c; 【新建文本,调用函数】
gcc -c add.c; 【进行汇编,生成add.o文件】
ar rcs libadd.a add.o 【生成libadd.a文件,进行静态库的封装】
gcc demo.c -ladd -L . 【链接生成a.out文件,后面的“.”是当前路径,不能忽略】
./a.out 【执行】
阅读更多
个人分类: 日记
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

DATE 3

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭