1. 程式人生 > >linux動態庫與靜態庫程式設計

linux動態庫與靜態庫程式設計

個人覺得在linux環境下,動態庫和靜態庫的程式設計更加容易.

首先要熟悉gcc的各個引數意義

-E 預編譯

-S 編譯

-c 彙編成二進位制程式碼,-C 生成可執行檔案


1,編寫static.c

2,將static.c編譯成二進位制程式碼:gcc -c static.c      ->得到   static.o檔案

3,將static.o打包成靜態庫:     ar r libstatic.a static.o     ->得到   libstatic.a

4,編寫動態庫run.c

5,將run製作為動態庫: gcc -fPIC -shared -c run.c -o librun.so    ->得到   librun.so

6,編寫主函式main並編譯連結: gcc main.c  -L. -l static  -l run -o main  ->得到 main   //注意-L後面有個.

7,          ./main


詳細解說

第3步,    ar 命令負責將static.o打包,  合理的命名規範是以lib開頭,中間接名字,最後.a結尾,這樣方便後面編譯

第5步, -fPIC 表示生成位置無關的程式碼,-shared表示生成動態庫,然後就會生成librun.so,同上,規範是用lib開頭,名字,然後.so結尾

第6步, -L指示標準庫外的庫地址(標準庫有lib和usr/lib),在這裡-L.  即當前目錄  , -l後面接要連結的動態庫或靜態庫