关于Linux下建立一个静态库的简要步骤:
静态库,也称作归档文件,通常他们的文件名以“.a”结尾。
下面我们来创建一个小型的函数库,包含两个函数。
第一,创建函数源文件,如fred.c和bill.c:
/*************fred.c***************/
#include <stdio.h>
void fred(int arg)
{
printf(“fred: you passed %d\n”, arg);
}
/*************bill.c***************/
#include <stdio.h>
void bill(char *arg)
{
printf(“bill: you passed %s\n”, arg);
}
#include <stdio.h>
void fred(int arg)
{
printf(“fred: you passed %d\n”, arg);
}
/*************bill.c***************/
#include <stdio.h>
void bill(char *arg)
{
printf(“bill: you passed %s\n”, arg);
}
第二,分别编译两个函数,产生要包含在库文件中的目标文件,即获得fred.o和bill.o:
gcc -c bill.c fred.c
第三,创建库文件lfoo.a:
ar crv lfoo.a bill.o fred.o
第四,为库文件创建一个头文件lib.h,为调用程序做准备:
/* This is a lib.h.*/
void fred(int arg);
void bill(char *);
void fred(int arg);
void bill(char *);
第五,编写调用程序test.c:
#inlcude <lib.h>
int main()
{
bill(“hello world!”);
exit(0);
}
int main()
{
bill(“hello world!”);
exit(0);
}
第六,编译运行:
(1)生成目标文件test.o:cgcc -c test.c;
(2)生成可执行文件test:gcc -o test test.o lfoo.a;
(3)运行test:./test
上述第六步,也可通过-L来连接静态库:
gcc -o test test.o -L -lfoo
本文转自jazka 51CTO博客,原文链接:http://blog.51cto.com/jazka/240509,如需转载请自行联系原作者