區別:1、靜態函式庫在程式編譯時會連接到目標程式碼中,程式執行時將不再需要該靜態函式庫;動態函式庫在程式編譯時並不會被連接到目標碼中,而是在程式運行時才被載入,因此在程式運行時還需要動態庫存在。 2.動態庫產生的文件比較小,靜態庫產生的文件比較大。
本教學操作環境:CentOS 6系統、Dell G3電腦。
#相同點:
無論靜態函式庫,或是動態函式庫,都是由.o檔建立的。因此,我們必須將原始程式透過gcc先編譯成.o檔;
區別:
##1、程式碼載入時間不同
2、編譯規則不同
最主要的是GCC命令列的選項, -shared 此選項指定產生動態連線庫, 例如:
g -shared -o libd1.so d1.o /*根據中間目標檔案d1.o建立動態庫檔案d1.so*/g -shared -o libd2.so d2.o /*根據中間目標檔案d2.o建立動態函式庫檔案d2. so*/UNIX中,使用ar指令建立或操作靜態函式庫ar archivefile objfilearchivefile:archivefile是靜態函式庫的名稱objfile :objfile是已.o為副檔名的中間目標檔名,可以多個並列;#例如:
g++ -o hello.o -c hello.cpp ar cqs libHello.a hello.o
Linux影片教學》
以上是linux中動態函式庫和靜態函式庫的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!