![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++编译知识
文章平均质量分 93
wxj1992
这个作者很懒,什么都没留下…
展开
-
C++编译知识笔记(三)——静态链接
目录一、空间与地址的分配1.1 相似段合并并确定装载地址1.2 确定符号地址二、符号解析与重定位2.1 符号解析2.2 重定位三、总结编译过后我们会得到.o格式的目标文件,每个c或者cpp文件都会生成一个.o,也就是一个编译单元对应一个.o,而要生成一个可执行程序,则需要各个编译单元之间协调配合,各个编译单元之间存在着各种调用关系,比如跨编译单元访问变量或者调用函数,简单来说将各个.o的内容组织成一个可执行文件的过程就是链接,而静态链接之所以叫静态是因为是在编译期提前做好,相对的有动态链接,后面也会写文章原创 2022-05-03 16:02:13 · 1226 阅读 · 0 评论 -
C++编译知识笔记(一)——基本知识
文章目录一、编译的基本步骤1.1 预处理阶段1.2 编译阶段1.3 汇编阶段1.4 链接阶段二、核心常用基本概念2.1 .o目标文件2.2 符号2.3 静态链接库2.4 动态链接库三、链接和加载3.1 .o文件和静态库的链接3.2 动态库的链接四、编译的关键参数—各种路径4.1 头文件搜索路径4.2 编译时库文件搜索路径4.3 运行时库文件搜索路径4.3.1 LD_PRELOAD环境变量4.3.2 RPATH4.3.3 LD_LIBRARY_PATH环境变量作为一个C++工程师,编译可以说是日常工作内容中原创 2021-06-27 23:16:05 · 635 阅读 · 3 评论 -
C++编译知识笔记(二)——Linux ELF文件解析
这篇文章会以一个目标文件为实例来详细聊一下Linux下的目标文件里究竟有什么,以及它和可执行文件所用到的格式ELF(Executable Linkable Format)原创 2022-05-02 17:26:31 · 2436 阅读 · 0 评论