1. 程式人生 > >linux下靜態庫.a和動態庫.so檔案的生成和使用

linux下靜態庫.a和動態庫.so檔案的生成和使用

1.靜態庫是一些目標檔案(字尾名為.o)的集合體而已。
2.靜態庫的字尾名是.a,對應於windows作業系統的字尾名為.lib的靜態庫。
3.可以使用ar命令來建立一個靜態庫檔案。
來看一個例項,根據書中的程式碼簡化的,先看一看可以編譯成庫檔案的原始檔中的程式碼:

/*	test.c	*/
int f() 
{
  return 3;
}

程式碼非常簡單,只有一句話。我們敲入如下命令:
gcc –c test.c
ar cr libtest.a test.o
會在當前目錄下生成一個libtest.a靜態庫檔案。-c表示只編譯,不連結。再來看一看如何使用這個庫。如下程式碼:

/*	app.c	*/
#include <stdio.h>
extern int f();
int main() 
{
  printf(“return value is %d\n”,f());
  return 0;
}

敲入如下命令:
gcc –c app.c
gcc -o app app.o -L. –ltest
敲命令的時候要記得將libtest.a檔案和生成的app.o檔案放在同一個目錄(即當前目錄)下。這樣,敲入命令後,會在當前目錄下生成一個名為app的可執行檔案。-o表示指定輸出檔名。執行一下./app,可以看一看結果:

這就是生成linux下面靜態庫的簡單用法了。