Linux 第二课

来源:互联网 发布:unity3d工程师薪资 编辑:程序博客网 时间:2024/06/04 00:01

vi 编辑器 写源文件
编译器 将 源文件 编译为 可执行文件
vim 编辑模式,底行模式,插入模式
增删改查
yy dd s/ / /

编辑模式Esc
d 范围删除
dd 行删除
n+dd 多行删除
y 范围复制
yy 行复制
n+yy 多行复制
p 粘贴
u 撤销最近的操作

底行模式:,shift+;
set nu 显示行数
set nonu 取消显示行数
n 到第n行
0 到第一行
$ 到底行
w 保存
q 退出
wq 保存并退出
s/原词/替换词 替换光标所在行
%s/原词/替换词 全部替换(每行的第一句)
6,8s/原词/替换词 几行替换
s/原词/替换词/g 全行替换(不管一行几句)

gcc编译
pwd
! 强制执行某个操作,例如!tree
w test.c 建立新文件
5,10 w test.c 5到10行写入新文件
5,10 r test.c 5到10行读入该文件

gcc工具链

运行编译好的c文件 ./a.out或./hello或file hello(还显示虚拟机配置)
心得:每次改动了之后得重新编译,才可以得到改动之后的c

一般写完一个c文件直接编译
gcc -o hello hello.c
生成的文件名 文件

或者 gcc hello.c –o hello
文件 生成的文件名

gcc编译的过程
1、预处理 生成.i文件
gcc –E –o hello.i hello.c
1、 预处理不检查错误,但进行预处理
2、 进行宏定义的替换 #define

2、编译 生成.s文件 汇编文件) 汇编文件
gcc –S –o hello.s hello.i
1、 编译时会检查错误,并出错处理

3、汇编 生成.o文件(obj目标文件)机器语言代码
gcc –c –c hello.o hello.s
将汇编程序翻译成cpu可以识别的二进制文件,即目标文件

4、链接 生成可执行文件
gcc –o hello hello.o或hello.c
把程序中所有的test.o文件 和 启动代码、函数库文件链接都链接在一起,生成一个可以直接运行的文件,即可执行文件
启动代码: 1、向系统申请资源和编号
2、提供接口,到达 main入口
启动代码在资源申请,它所起的作用:将代码段 + 数据段 从
ROM 搬到 RAM ,将bss段清零, 初始化堆栈 实质上是初始化堆栈指针

1、 C 语言中的可移植性体现在哪里?
1、 不用改变源代码便可以在另一台机器上编译
2、 可以在任何操作系统上运行
3、 可以在任何机器上运行

2、为什么可移植? 汇编代码? 为毛
汇编语言与机器硬件紧密相关,
汇编针对CPU

一些常用的原始程序码的扩展名
  .c  C 原始程序         ; 预处理、编译、汇编
  .C  C++ 原始程序        ; 预处理、编译、汇编
  .cc C++ 原始程序        ; 预处理、编译、汇编
  .cxx C++ 原始程序        ; 预处理、编译、汇编
  .m  Objective-C 原始程序    ; 预处理、编译、汇编
  .i  已经过预处理之 C 原始程序  ; 编译、汇编
  .ii 已经过预处理之 C++ 原始程序 ; 编译、汇编
  .s  组合语言原始程序      ; 汇编
  .S  组合语言原始程序      ; 预处理、汇编
  .h  预处理文件(标头文件)    ; (不常出现在指令行)
.

原创粉丝点击