如何创建一个有效的链接(Link)策略来提升网站流量?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1128个文字,预计阅读时间需要5分钟。
链接类型+编译时+静态库,整合到可执行文件中+加载时+动态库,在load时loader看到interp节+调用动态连接器+运行时+由代码决定加载哪个,可实现热更新+GCC参数+-o输出文件+-O优化
链接种类-
编译时 静态库,整合到可执行文件中
-
加载时 动态库,在load时loader看到interp节,调用动态连接器
-
运行时 由代码决定加载那个,可以实现热更新
- -o outputfile
- -O Optimize 优化
- -fpic 位置无关
- -shared 共享库
- -static 静态链接,完全链接
- -D ifdef的参数
- -I include 路径
- -L 静态库路径
- -llib 静态库缩写
代码中引用的函数和变量
编译的原则是每个源代码文件形成一个目标文件,当需要跨文件或者跨文件夹访问或调用时,即有多个文件,那么在编译时,有些符号并没有实际的地址,符号解析的作用就是让每个符号绑定一个地址。
怎么做?
编译成功的的目标文件是一个ELF格式,有头部、节段、节头部表组成。
其中.symtab 是符号表,模块中所有出现的符号都会在里面。
.rel.text 和 .rel.data 是重定位的信息,标记了.text和.data 节段中链接后需要修改的部分的位置
.symtab 中的标志表示了这个符号是本地还是外部,是否需要解析。
本文共计1128个文字,预计阅读时间需要5分钟。
链接类型+编译时+静态库,整合到可执行文件中+加载时+动态库,在load时loader看到interp节+调用动态连接器+运行时+由代码决定加载哪个,可实现热更新+GCC参数+-o输出文件+-O优化
链接种类-
编译时 静态库,整合到可执行文件中
-
加载时 动态库,在load时loader看到interp节,调用动态连接器
-
运行时 由代码决定加载那个,可以实现热更新
- -o outputfile
- -O Optimize 优化
- -fpic 位置无关
- -shared 共享库
- -static 静态链接,完全链接
- -D ifdef的参数
- -I include 路径
- -L 静态库路径
- -llib 静态库缩写
代码中引用的函数和变量
编译的原则是每个源代码文件形成一个目标文件,当需要跨文件或者跨文件夹访问或调用时,即有多个文件,那么在编译时,有些符号并没有实际的地址,符号解析的作用就是让每个符号绑定一个地址。
怎么做?
编译成功的的目标文件是一个ELF格式,有头部、节段、节头部表组成。
其中.symtab 是符号表,模块中所有出现的符号都会在里面。
.rel.text 和 .rel.data 是重定位的信息,标记了.text和.data 节段中链接后需要修改的部分的位置
.symtab 中的标志表示了这个符号是本地还是外部,是否需要解析。

