ar crv libfoo.a bill.o fred.o
bill.o 由gcc -c bill.c 得到
fred.o 由gcc -c fred.c得到
具体过程如下:
bill.c 程序如下:
#include<stdio.h>
void bill(char *arg)
{
printf("bill: we passed %s\n",arg);
}
fred.c程序如下:
#include<stdio.h>
void fred(int arg)
{
printf("fred: we passed %d \n",arg);
}
gcc -c bill.c fred.c
lib.h 代码:
void bill(char *);
void fred(int);
program.c代码如下:
#include<stdlib.h>
#include"lib.h"
int main()
{
bill("Hello World");
return 0;
}
gcc -c program.c
ar crv libfoo.a bill.o fred.o
gcc -o program program.o libfoo.a
从上面的过程可以看出,头文件只是声明函数,并没有函数的实际内容,而库函数包含了函数的实际内容,而且是.o 形式的,就是可执行形式的。