Linux庫概念及相關程式設計

2021-10-08 21:36:29 字數 1223 閱讀 1240

使用gnu的工具我們如何在linux下建立自己的程式函式庫?乙個「程式函式庫」簡單的說就是乙個檔案包含了一些編譯好的**和資料,這些編譯好的**和資料可以在事後供其他的程式使用。程式函式庫可以使整個程式更加模組化,更容易重新編譯,而且更方便公升級。

程式函式庫可分為3種型別:靜態函式庫(static libraries)、共享函式庫(shared libraries)、動態載入函式庫(dynamically loaded libraries):

1、靜態函式庫,是在程式執行前就加入到目標程式中去了 ;

2、動態函式庫同共享函式庫是乙個東西(在linux上叫共享物件庫, 檔案字尾是.so ,windows上叫動態載入函式庫, 檔案字尾是.dll)

linux庫的命名規則

優點

缺點

1)庫的製作

原始檔案:***.c檔案

.o檔案:gcc -c ***.c

.a檔案(靜態庫):ar rcs lib***.a ***.o

2)使用

gcc demo.c -l*** -l ./

-l*** -l是制定要用的動態庫,庫名砍頭去尾

-l告訴gcc編譯器從-l制定的路徑去找靜態庫。預設是從/usr/lib或/usr/local/lib去找

優點

缺點

1)製作

原檔案:***.c

.so檔案(動態庫):gcc -shared -fpic ***.c -o lib***.so

-shared 指定生成動態庫

-fpic 標準,fpic選項作用於編譯階段,在生成目標檔案時就得使用該選項,以生成位置無關的**。

2)使用

gcc demo.c -l*** -l ./

:程式執行,預設到usr/lib目錄下找對應的動態庫,所以可將生成的動態庫拷貝到usr/lib下

設定到當前路徑找動態庫

export ld_library_path=

"pwd(當前目錄)"

其他方法:

Docker相關概念及要點

1.基本概念 docker 的容器通過 linux 的命名空間完成了與宿主機程序的網路隔離。docker 為我們提供了四種不同的網路模式,host container none 和 bridge 模式。docker 預設的網路設定模式 網橋模式。我們通過 linux 的命名空間為新建立的程序隔離了檔...

About Hive相關概念及HiveQL操作

root bdpdatanode01 hive e select count 1 from prod bdw.dwd calendar root bdpdatanode01 hive s e select count 1 from prod bdw.dwd calendar 1 託管表和外部表 2 ...

nbd 相關概念及操作

周五 3月6號 筆者發現有台物理機上掛載了乙個並非常用的nbd裝置,估計是之前人做的測試留下來的,決定解除安裝它,順帶了解了下nbd的裝置資訊。什麼是nbd 全稱是network block device,類似於nfs,遠端裝置可以掛載,只不過掛載的不再是檔案系統,而是塊裝置。nbd一般分為clie...