linux构建静态库并测试

linux中静态库(.a)和动态库(.so).静态库文件是归档文件(archives).由ar生成. 构建静态库大致步骤如下:

  1. 编写库函数源代码,使用gcc编译为.o目标文件.

  2. 使用ar命令将目标文件归档为.a文件.

  3. 为库编写头文件.

  4. 编写代码测试.

编写源码并编译为目标文件

mylib.c:

#include<stdio.h>

int mylib(void)
{
	printf("SUCCESSFUL!\n");

	return 0;
}

编译为目标文件:

gcc -c mylib.c -o mylib.o

构建为归档文件

使用ar命令将mylib.o归档为归档文件:

ar -cqv libmylib.a mylib.o

为库编写头文件

告诉用户如何使用mylib.a静态库.

mylib.h:

#ifndef __MY_LIB_H__
#define __MY_LIB_H__

int mylib(void);

#endif

编写测试文件测试

test.c:

#include <mylib.h>   //包含头文件mylib.h

int main(void)
{
	mylib();

	return 0;
}

编译:

gcc -L. -I. test.c -lmylib -o test

测试./test

SUCCESSFUL!

写个Makefile实现自动化

Makefile:

test:libmylib.a test.c
	gcc -L. -I. test.c -lmylib -o test

libmylib.a:mylib.o
	ar -cqv libmylib.a mylib.o

mylib.o:mylib.c
	gcc -c mylib.c -o mylib.o

clean:
	rm *.o *.a test
comments powered by Disqus