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 预处理文件(标头文件) ; (不常出现在指令行)
.
- linux学习第二课
- linux学习第二课
- Linux C第二课
- Linux第二课
- Linux第二课总结
- Linux总结第二课
- Linux 第二课
- Linux-----第二课:Disk_partition
- 嵌入式 linux 第二课 GPIO
- 耿老师linux第二课 Linux常用命令!
- linux基础常用命令-第二课
- Linux重修第二课(初识SHELL)
- Linux第二课 文件系统及常用命令
- 《Linux内核分析》第二课笔记
- MOOC《Linux内核分析》第二课
- linux运维学习第二课
- 第二章 Linux安装
- Linux 第二步
- 模拟ArrayList(初级)
- 常用
- Web功能测试
- 游戏编程之DirectX的修炼:一(编程环境和DirectX安装)
- poj-1041-John's trip
- Linux 第二课
- Veeam Bakcup Hyper-v
- 腾讯笔试模拟题(int foo[]={1,2,3,4,5,6};cout << (1+3)[foo]-foo[0]+(foo+1)[2])
- 数据库存储大数据量(千万条记录级别)数据的考虑要点
- printf 函数支持
- Linux第三课 Makefile GDB Shell
- centos7.3下安装maven3.5.0
- QT之Hello World
- 一个用户scott中的表导到另一个用户lnsf中的表