制作静态库
1.gcc -c 123.c -o 123.o
2.ar rcs lib库名.a -o 123.0
3.gcc test.c ./lib/libmymath.a -o test -I ./inc #-I 头文件地址
[ramos@localhost ~]$ touch add.c
[ramos@localhost ~]$ ls
add.c Desktop Documents Downloads Music Pictures Public Templates Videos
[ramos@localhost ~]$ cat add.c
[ramos@localhost ~]$ vim add.c
[ramos@localhost ~]$ cat add.c
int add(int a,int b)
{
return a+b;
}
[ramos@localhost ~]$ gcc -c add.c -o add.o
[ramos@localhost ~]$ ls
add.c add.o Desktop Documents Downloads Music Pictures Public Templates Videos
[ramos@localhost ~]$ ar rcs libmymath.a add.o
[ramos@localhost ~]$ ls
add.c add.o Desktop Documents Downloads libmymath.a Music Pictures Public Templates Videos
[ramos@localhost ~]$ touch test.c
[ramos@localhost ~]$ vim test.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <pthread.h>
#include "mymath.h"
int main(int aegc,char*argv[])
{
int a=9,b=3;
printf("%d+%d=%d\n",a,b,add(a,b));
return 0;
}
[ramos@localhost ~]$ ls
add.c add.o Desktop Documents Downloads libmymath.a Music Pictures Public Templates test.c Videos
[ramos@localhost ~]$ gcc test.c libmymath.a -o test
[ramos@localhost ~]$ ls
add.c add.o Desktop Documents Downloads libmymath.a Music Pictures Public Templates test test.c Videos
[ramos@localhost ~]$ ./test
9+3=12
gcc test.c ./lib/libmymath.a -o test -I ./inc -I 头文件地址
#头文件
#ifndef _MYMATH_H_
#define _MYMATH_H_
int add(int,int);
#endif
头文件守卫,防止代码中多次include头文件,多次展开动态库,带来额外开销