深入理解C/C++的编译与链接技术8:库文件检索逻辑
深入理解C/C++的编译与链接技术8:库文件检索逻辑 前言 现在,我们需要讨论的是定位库文件的事情。定位库文件说的是——一个依赖了针对于本体而言的其他动态库文件的可执行文件,是如何找到这些其他动态库文件的? 这个问题并非小问题,仔细一想,在现代的软件工程中,我们几乎逃脱不了库文件的使用。比如说,我们
深入理解C/C++的编译与链接技术8:库文件检索逻辑 前言 现在,我们需要讨论的是定位库文件的事情。定位库文件说的是——一个依赖了针对于本体而言的其他动态库文件的可执行文件,是如何找到这些其他动态库文件的? 这个问题并非小问题,仔细一想,在现代的软件工程中,我们几乎逃脱不了库文件的使用。比如说,我们
深入理解C/C++编译技术——动态库A4:链接时符号缺失行为与运行时动态加载 这一篇博客会更加重要一些,这里我们计划讨论的是各个平台上(Windows和GNU/Linux),当我们的可执行文件生成或者是其他库文件依赖的符号存在未定义时,不同平台的表现;以及比较重要的动态库动态加载编程。 链接时符号缺
深入理解C/C++编译技术——动态库A3:聊一聊符号可见性 有笔者朋友可能感到奇怪——符号的可见性是什么呢?是不是咱们的C++中的关键字:public或者是private呢?值得指出的是,并不是,前者是语言语法和编译器检查一并提供的基础功能,这里,我们讨论的符号可见性更加的激进,是指代在符号ABI层
深入理解C/C++的编译链接技术6——A2:动态库设计基础之ABI设计接口 前言 在这片博客中,笔者尝试的是总结和归纳一部分咱们动态库设计中一些比较重要的技术要点,比如说,二进制接口的设计导出。 所以,为什么扯上二进制接口了 本质上,我们设计动态库的最终的目的(笔者认为这个是要时刻牢记的),是将我们
深入理解C/C++编译与链接技术4:动态库A1:基本讨论之-fPIC 前言 这段时间比较累,经常忙着一大堆事情而且准备上班了,这里笔者就这几天终于可以小小的休息一下,继续更新这个系列的相关博客。 这一篇主要讨论的是动态库的基础内容,特别的,会讨论一下如何制作动态库(重点是Linux,Windows上
深入理解CC++的编译与链接技术(番外):动态库可以像可执行文件那样执行嘛? 我知道有朋友看到这个话题会下意识的发笑,会觉得笔者在胡言乱语。其实,笔者在最最开始的时候,也对这个事情一笑了之,觉得太荒唐。但是实际上,动态库是可以像可执行文件那样执行的。 会有人直接甩给我一个Segment Fault,
深入理解CC++的编译与链接技术3:如何制作和使用静态库 在上一篇博客中,笔者就简单的提及了一下关于静态库和动态库的基本导论,笔者将链接放在这里: 深入理解CC++的编译与链接技术-CSDN博客 深入理解CC++的编译与链接技术2:动态库静态库导论-CSDN博客 所以在之前,我们就简单的讲述了静态库
深入理解CC++的编译与链接技术2:动态库静态库导论 什么是重用概念,跟我们的编译与链接技术有什么关系 重用无处不在,我相信不会有人不赞同的。我们讨论的重用就是代码的再次利用。这一点,在C++编程中已经可以窥得一丝猫腻了: template<typename AddType> auto add(co