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操作系統

相關文章
相關標籤/搜索