程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Linux下創建、查看、提取和修改靜態庫(*.a)

Linux下創建、查看、提取和修改靜態庫(*.a)

編輯:關於C語言

  先說明一點,靜態庫文件是由多個目標文件打包而成的,在windows下靜態庫文件的後綴是.lib,而在linux下靜態庫文件的後綴是.a(a是archive的縮寫,也就是文檔文件)。

  廢話少說,下面直接進入主題。

 

 
  addition ( a ,   result=a+  }

multiplication.c

 
    result=a*  }

 

 

 $ gcc - $ gcc -c multiplication.c

其中選項 -c 是讓gcc只把源碼編譯成.o文件。

接著在當前文件夾中就會發現多處了兩個.o文件

  addition.c multiplication.c addition.o multiplication.o

 

 

 $ ar cr libarith.a  addition.o multiplication.o

其中cr就是create的意思,這樣就創建了一個libarith.a的靜態庫文件。

 

 

在使用庫文件之前要先建立一個頭文件 header.h,它包含了庫文件中實現了函數的聲明。

 
 #include<stdio.h>
  addition( a,  multiplication( a, b);

然後創建一個c程序example.c來調用函數

 
 #include 
    result=addition(, printf( result=multiplition(, printf(   }

編譯example.c

 $ gcc example.c libarith.a -o example

選項 -o 後面的參數是指定編譯器生成的可執行文件名,如果沒有加 -o的話默認生成的可執行文件名是 a.out

運行可以行文件example

 $./ addtion result :
 multiplication result :

 

 

   multiplition.o

如果想查看庫文件中包含了哪些函數可以用 nm  libarith.a 查看,如果要查看可執行文件需要調用哪些庫可以用 lld example 來查看。

 

  $ cp libarith.a file/
     multiplition.o

 

 

假設你已經有一個目標文件subtraction.o

     subtraction.o

如果庫文件中已經存在了subtraction.o文件,則會用新的來覆蓋原來舊的。

 

 

    subtraction.o

 

參考來源:http://www.thegeekstuff.com/2010/08/ar-command-examples/

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved