使用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...