Makefile-fPIC,C++静态库与动态库

在计算机领域中,地址无关代码 (英文position-independent code,缩写为PIC),又称地址无关可执行文件 (英文: position-independent executable,缩写为PIE) ,是指可在主存储器中任意位置正确地运行,而不受其绝对地址影响的一种机器码。PIC普遍使用于共享库,使得同一个库中的代码可以被加载到不一样进程的地址空间中。PIC还用于缺乏内存管理单元的计算机系统中, [1] 使得操做系统可以在单一的地址空间中将不一样的运行程序隔离开来。php

地址无关代码可以在不作修改的状况下被复制到内存中的任意位置。这一点不一样于重定位代码,由于重定位代码须要通过连接器加载器的特殊处理才能肯定合适的运行时内存地址。 地址无关代码须要在源代码级别遵循一套特定的语义,而且须要编译器的支持。那些引用了绝对内存地址的指令(好比绝对跳转指令)必须被替换为PC相对寻址指令。这些间接处理过程可能致使PIC的运行效率降低,可是目前大多数处理器对PIC都有很好的支持,使得这效率上的这一点点降低基本能够忽略。html

 

C++静态库与动态库spa

这篇文章很是详细,简单,超好:https://www.cnblogs.com/skynet/p/3372855.html操作系统