diff --git "a/docs/notes/\350\256\241\347\256\227\346\234\272\346\223\215\344\275\234\347\263\273\347\273\237 - \351\223\276\346\216\245.md" "b/docs/notes/\350\256\241\347\256\227\346\234\272\346\223\215\344\275\234\347\263\273\347\273\237 - \351\223\276\346\216\245.md" index ef62cd75a4e4b4883ec0c25b02c82707a49ca144..0436a79e6f700bea4a1f56255de3bc1cdb5c4eff 100644 --- "a/docs/notes/\350\256\241\347\256\227\346\234\272\346\223\215\344\275\234\347\263\273\347\273\237 - \351\223\276\346\216\245.md" +++ "b/docs/notes/\350\256\241\347\256\227\346\234\272\346\223\215\344\275\234\347\263\273\347\273\237 - \351\223\276\346\216\245.md" @@ -33,12 +33,12 @@ gcc -o hello hello.c - 预处理阶段:处理以 # 开头的预处理命令; - 编译阶段:翻译成汇编文件; -- 汇编阶段:将汇编文件翻译成可重定向目标文件; -- 链接阶段:将可重定向目标文件和 printf.o 等单独预编译好的目标文件进行合并,得到最终的可执行目标文件。 +- 汇编阶段:将汇编文件翻译成可重定位目标文件; +- 链接阶段:将可重定位目标文件和 printf.o 等单独预编译好的目标文件进行合并,得到最终的可执行目标文件。 # 静态链接 -静态链接器以一组可重定向目标文件为输入,生成一个完全链接的可执行目标文件作为输出。链接器主要完成以下两个任务: +静态链接器以一组可重定位目标文件为输入,生成一个完全链接的可执行目标文件作为输出。链接器主要完成以下两个任务: - 符号解析:每个符号对应于一个函数、一个全局变量或一个静态变量,符号解析的目的是将每个符号引用与一个符号定义关联起来。 - 重定位:链接器通过把每个符号定义与一个内存位置关联起来,然后修改所有对这些符号的引用,使得它们指向这个内存位置。 @@ -48,8 +48,8 @@ gcc -o hello hello.c # 目标文件 - 可执行目标文件:可以直接在内存中执行; -- 可重定向目标文件:可与其它可重定向目标文件在链接阶段合并,创建一个可执行目标文件; -- 共享目标文件:这是一种特殊的可重定向目标文件,可以在运行时被动态加载进内存并链接; +- 可重定位目标文件:可与其它可重定位目标文件在链接阶段合并,创建一个可执行目标文件; +- 共享目标文件:这是一种特殊的可重定位目标文件,可以在运行时被动态加载进内存并链接; # 动态链接