auto commit

This commit is contained in:
CyC2018
2019-11-02 12:07:41 +08:00
parent 182e1440a4
commit bb6e0df82d
784 changed files with 7545 additions and 2827 deletions

View File

@ -1,10 +1,4 @@
<!-- GFM-TOC -->
* [编译系统](#编译系统)
* [静态链接](#静态链接)
* [目标文件](#目标文件)
* [动态链接](#动态链接)
<!-- GFM-TOC -->
[TOC]
# 编译系统
@ -29,7 +23,7 @@ gcc -o hello hello.c
这个过程大致如下
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/b396d726-b75f-4a32-89a2-03a7b6e19f6f.jpg" width="800"/> </div><br>
<img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/b396d726-b75f-4a32-89a2-03a7b6e19f6f.jpg" width="800"/>
- 预处理阶段处理以 # 开头的预处理命令
- 编译阶段翻译成汇编文件
@ -43,7 +37,7 @@ gcc -o hello hello.c
- 符号解析每个符号对应于一个函数一个全局变量或一个静态变量符号解析的目的是将每个符号引用与一个符号定义关联起来
- 重定位链接器通过把每个符号定义与一个内存位置关联起来然后修改所有对这些符号的引用使得它们指向这个内存位置
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/47d98583-8bb0-45cc-812d-47eefa0a4a40.jpg"/> </div><br>
![](pics/47d98583-8bb0-45cc-812d-47eefa0a4a40.jpg)
# 目标文件
@ -63,11 +57,4 @@ gcc -o hello hello.c
- 在给定的文件系统中一个库只有一个文件所有引用该库的可执行目标文件都共享这个文件它不会被复制到引用它的可执行文件中
- 在内存中一个共享库的 .text 已编译程序的机器代码的一个副本可以被不同的正在运行的进程共享
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/76dc7769-1aac-4888-9bea-064f1caa8e77.jpg"/> </div><br>
<div align="center"><img width="320px" src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/githubio/公众号二维码-1.png"></img></div>
![](pics/76dc7769-1aac-4888-9bea-064f1caa8e77.jpg)