樹莓派學習 庫的概念 製作靜態庫 動態庫

2021-10-08 14:27:48 字數 1580 閱讀 1975

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

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

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

靜態函式庫,是在程式執行前(編譯)就加入到目標程式中去了 ;

動態函式庫,是在程式執行時動態(臨時)由目標程式去呼叫

(1)靜態庫 ( 格式 :***x.a )

以 testfun.c (不包含主函式 main,也就是功能函式 ) 為例

gcc testfun.c -c  //  生成  ***x.o 的檔案
ar rcs libtest.a testfunc.o  // ***.o檔案生成***.a靜態庫檔案

(2)動態庫 ( 格式 : ***x.so )

gcc -shared -fpic test.c -o libtest.so

// -shared 指定生成動態庫

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

(1) 靜態庫 :

gcc test.c -ltest -l .

/-o mainprostatic

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

// -l 告訴 gcc編譯器從 -l 制定的路徑去找靜態庫。

// 預設是從 /usr/lib /usr/local/lib 去找

(2) 動態庫 :

//	libcalc.so

gcc calculatort.c -lcalc -l .

/-o mainprody

可以指定該程式執行時候,在 ld_library_path 所指定的路徑去找庫檔案

靜態庫的製作

靜態庫和動態庫 1.靜態庫 a和.framework 1.鏈結時,靜態庫會被完整地複製到可執行檔案中,被多次使用就有多分冗餘 2.核心 封裝,不讓別人看 lipo info 靜態庫 檢視靜態庫支援哪些架構 i386 iphone模擬器 3gs 4s x86 64 iphone模擬器 5s 6p ar...

靜態庫的製作

最近公司需要把一套流程封裝起來,採用了靜態庫的做法,順便記錄下靜態庫的製作過程。新建工程選擇framework,當然選擇static library也可以,static library的.a h 資源檔案就相當於framework,尤其是資源檔案,如果用static library,還需單獨供給使用...

樹莓派 wiringPi庫的使用

侷限性wiringpi庫是乙個非常實用的庫,它使我們能把樹莓派像stm32一樣應用而不用掌握linux的核心。gpio vderuio 工作室做了乙個wiringpi的使用者手冊,將庫函式分為11類。v0.0.1 這個只展開常用的幾個函式 後面的我還沒用過 int wiringpisetup voi...