1、Linux虚拟地址空间
- Linux可执行文件格式为ELF,通过file xxxx可以查看文件类型
- 虚拟地址空间在32位系统中为4G,每个应用程序都有独立的4G
- 地址位从高到低分别为:
- 3G ~ 4G:Linux Kernel,内存管理、进程管理、设备驱动、VFS虚拟文件系统
- 0G ~ 3G
- 环境变量
- 命令行参数
- 栈空间
- 共享库
- 堆空间
- ELF
- 未初始化的全局变量
- 已初始化的全局变量
- 代码段、二进制机器指令
- 受保护的地址(0 ~ 4K)
2、Linux文件基本组成[……]
继续阅读
1、为什么要使用makefile
- 在编译项目时,gcc相关参数非常多,如gcc *.c -I include -Wall -g -03 -D DEBUG -…..
- 这是一个代码管理工具,外部编译时只需要执行makefile即可
- 屏蔽编译的复杂过程,源代码以最简单的方式生成可执行程序
2、ma[……]
继续阅读
1、命名规则
- 静态库:lib+名称.a —> libSian.a
- 动态库:lib+名称.so —> libSian.so
2、静态库制作
- 准备目录:include、lib、src
- 头文件存放在include中,源文件存放在src中,库文件存放lib中
- 生成.o文件:在src目录中gcc -[……]
继续阅读
1、前期准备
- gcc编译的时候要带参数-g,编译出来的可执行文件才带断点信息,否则无法断点;
- gcc -g xxx.c -o xxx.out // xxx.c为源文件,.out为输出可执行文件名字
2、几条命令
- list
- 简写为l
- 查看源代码,默认为main函数文件
- l xxx[……]
继续阅读
1、光标移动
- h —> 往前
- j —> 往下
- k —> 往上
- l —> 往后
- 0 —> 行首
- $ —> 行尾
- gg —> 文件首部
- G —> 文件尾部
- 20G —> 第20行
2、删除操作(实为剪切)
- x —> 删除光标后字符
- X —> 删除光标前字符
- dw —> 删除光标后单词
- d0 —> 删除到行首
- d$、D —> 删除到行尾
- dd —> 删除当前行
- 4dd —> 删除当前开始的4行
- u —> 撤销
- Ctrl+r —> 反撤销
[……]
继续阅读