生成静态库可以理解为将一个对.o文件的归档。将一个或多个.o文件打包生成.a文件。

可以使用ar工具,例如:

➜  test gcc -Wall -c hello.c -o hello.o 
➜  test ar rcs libhello.a hello.o      
➜  test ls -l libhello.a 
-rw-rw-r-- 1 menwen menwen 1518 7月  16 14:33 libhello.a
// ar是gnu的归档工具
// rcs = replacecreatesave

接下来就是将生成的.a库文件和调用库函数的文件生成可执行文件。

test gcc -Wall main.c libhello.a -o main
➜  test ./main 
hello world

这样生成可执行文件时要注意main.c libhello.a这两个文件的书写顺序,否则编译会出错。

还有一种方法来生成可执行文件,就是通过-l选项。例如:

➜  makefile gcc -Wall -L. main.c -o main -lhello
➜  makefile ./main
hello world
// -L.:-L选项来指定库的位置,在当前目录下