庫的使用(靜態庫篇)

來源:互聯網
上載者:User

世界上本沒有庫,軟體開發得多了,也就有了庫。

 

要使用庫,首先要明白庫的分類,庫可以分為靜態庫和動態庫兩種。

1.靜態庫

 靜態庫的代碼在編譯時間連結到應用程式之中,因此編譯是庫檔案必須存在。可以用-l參數傳遞給編譯器。

2.動態庫

 動態庫的代碼是不會連結到目標檔案之中。動態庫之在程式運行時才被調用的。其調用能分為隱式調用和顯示調用。

 

靜態庫的操作工具:ar,具體用法此處省略。

 

靜態庫的產生可分為三步:設計庫源碼、編譯.o、使用ar庫

例子:

的一步:假如現在已經設計好了以下源檔案:pr1.c、pr2.c

第二步:編譯.o檔案,使用-c選項置產生中間結果,即.o檔案,同時增加-O最佳化代碼,如下:

#cc -O -c pr1.c pr2.c

第三步:連結靜態庫,假如我們建立靜態庫libpr.a,並通過ar的-r增加中間檔案(.o)到靜態庫檔案中,如下:

ar -rsv libpr.a pr1.o pr2.o

(就是這麼簡單>_<)

注意靜態庫在命名時必須按照lib[name].a的規則。

 

靜態庫的應用程式模型:

例子:

假如我們在main.c中調用了pr1.c 或者 pr2.c中的函數;

先來編譯連結,使用-l:

#cc -O -o main main.c -L./ -lpr

解釋:其中的“-lpr”的含義是連結靜態庫libpr.a,“-L./”表示可以在當前路徑下尋找庫檔案。

或者可以用下面的命令:

#cc -O -o main main.c ./libpr.a

然後直接運行main就行了。

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.