1. 程式人生 > >c靜態庫建立 與 指令碼檔案靜態庫建立 的區別

c靜態庫建立 與 指令碼檔案靜態庫建立 的區別

一,c靜態庫的建立
1,建立兩個.c檔案
例:
vim 1.c //第一個子檔案
#include<stdio.h>
int add(int x,int y)
{
return x+y;
}

vim 2.c //第二個子檔案
#include<stdio.h>
int sub(int x,int y)
{
return x-y;
}

vim 3.c //建立一個包含兩個子檔案的標頭檔案(建一個庫)
#include<stdio.h>
#include"fun.h"
int main()
{
int a=20;b=10;
int c=20;b=10;
printf(“add=%d\n”,add(a,b));
printf(“sub=%d\n”,sub(c,d));
return 0;
}

vim fun.h //建立一個.h檔案 包含兩個子檔案的標頭檔案
#ifndef FUN_H //#ifdef倆空格FUN空格H倆空格
#define FUN_H //#define倆空格FUN空格H倆空格
int add(int x,int y);
int sub(int x,int y);
#endif

gcc -c -o *.o *.c //彙編.c子檔案(按模板彙編每一個.c)
ar -rcs libfun.a *.o //打包
gcc 3.c -L./ -lfun //生成庫 fun
./a.out //結果
二,指令碼檔案的靜態庫建立
vim 1.sh
#!/bin/sh
i=0;
while [ $i -lt 5 ]
do
echo $i
touch $i.c
let i++
done

//生成5個.c檔案(./1.sh檢視結果)

for ((i=0;i<5;i++))
do
gcc -c -o $i.o $i.c
done //迴圈彙編.c檔案成.o檔案(./1.sh檢視結果)

ar -rcs libfun.a *.o //生成一個fun庫檔案(./1.sh檢視結果 )

由上兩種方法建立庫 指令碼檔案快速且方便。