[游戏引擎架构 个人读书笔记 2.2.1-2.2.3章节]
个人读书笔记:只根据自己的情况写下自己关心的部分。
=> 编译器(compiler):
每次只翻译一个cpp
=> To Object File
i: 可重定位:未决定代码的内存地址 :p
ii: 未链接:未解决外部函数和全局数据 :p
我(Object File)~ 只是个"合集"哦 :p 只是个存储代码片段的库哦~ 集合~ 集合~ ^_^
=> Link
i: Offset address(偏移地址) 确定啦~
ii: 外部函数 & 全局变量 清晰啦~
我(Linker)只是相对地址,看OS(操作系统)载入时把我最终放哪了~
=> DLL
我(DLL) 是个怪胎(双子座... 和我老公一样.. :p)
像库:包含函数,供其它调用。
像可执行文件:能被OS独立加载,有自动&终止代码。
对可执行程序(exe)说:
“你无权管我!” (因此exe对它未完全链接。)
“exe 你很讨厌!你竟然要OS强行管我,我被迫加载了(内存地址变化)”
"exe 你很讨厌!当你觉得我不够好时,就找来其它DLL替代我,而你自己却一点损失都没有!"