auto commit
This commit is contained in:
@ -1,3 +1,11 @@
|
||||
<!-- GFM-TOC -->
|
||||
* [编译系统](#编译系统)
|
||||
* [静态链接](#静态链接)
|
||||
* [目标文件](#目标文件)
|
||||
* [动态链接](#动态链接)
|
||||
<!-- GFM-TOC -->
|
||||
|
||||
|
||||
# 编译系统
|
||||
|
||||
|
||||
@ -21,7 +29,7 @@ gcc -o hello hello.c
|
||||
|
||||
这个过程大致如下:
|
||||
|
||||
<img src="index_files/b396d726-b75f-4a32-89a2-03a7b6e19f6f.jpg" width="800"/>
|
||||
<div align="center"> <img src="https://gitee.com/CyC2018/CS-Notes/raw/master/docs/pics/b396d726-b75f-4a32-89a2-03a7b6e19f6f.jpg" width="800"/> </div><br>
|
||||
|
||||
- 预处理阶段:处理以 # 开头的预处理命令;
|
||||
- 编译阶段:翻译成汇编文件;
|
||||
@ -35,7 +43,7 @@ gcc -o hello hello.c
|
||||
- 符号解析:每个符号对应于一个函数、一个全局变量或一个静态变量,符号解析的目的是将每个符号引用与一个符号定义关联起来。
|
||||
- 重定位:链接器通过把每个符号定义与一个内存位置关联起来,然后修改所有对这些符号的引用,使得它们指向这个内存位置。
|
||||
|
||||

|
||||
<div align="center"> <img src="https://gitee.com/CyC2018/CS-Notes/raw/master/docs/pics/47d98583-8bb0-45cc-812d-47eefa0a4a40.jpg"/> </div><br>
|
||||
|
||||
# 目标文件
|
||||
|
||||
@ -55,11 +63,10 @@ gcc -o hello hello.c
|
||||
- 在给定的文件系统中一个库只有一个文件,所有引用该库的可执行目标文件都共享这个文件,它不会被复制到引用它的可执行文件中;
|
||||
- 在内存中,一个共享库的 .text 节(已编译程序的机器代码)的一个副本可以被不同的正在运行的进程共享。
|
||||
|
||||

|
||||
---bottom---CyC---
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
<div align="center"> <img src="https://gitee.com/CyC2018/CS-Notes/raw/master/docs/pics/76dc7769-1aac-4888-9bea-064f1caa8e77.jpg"/> </div><br>
|
||||
|
||||
|
||||
|
||||
|
||||
</br><div align="center">⭐️欢迎关注我的公众号 CyC2018,在公众号后台回复关键字 📚 **资料** 可领取复习大纲,这份大纲是我花了一整年时间整理的面试知识点列表,不仅系统整理了面试知识点,而且标注了各个知识点的重要程度,从而帮你理清多而杂的面试知识点。可以说我基本是按照这份大纲来进行复习的,这份大纲对我拿到了 BAT 头条等 Offer 起到很大的帮助。你们完全可以和我一样根据大纲上列的知识点来进行复习,就不用看很多不重要的内容,也可以知道哪些内容很重要从而多安排一些复习时间。</div></br>
|
||||
<div align="center"><img width="180px" src="https://cyc-1256109796.cos.ap-guangzhou.myqcloud.com/%E5%85%AC%E4%BC%97%E5%8F%B7.jpg"></img></div>
|
||||
|
Reference in New Issue
Block a user