linux 创建 静态 链接库 动态 链接库

1. mylib.h


#ifndef __MYLIB__
#define __MYLIB__

int add(int a, int b);
int sum(int a, int b);
int mutil(int a, int b);
float div(int a, int b);


#endif 


2. mylib.c


#include "mylib.h"

int add(int a, int b)
{
		return a+b;
}
int sub(int a, int b)
{
		return a-b;	
}
int mutil(int a, int b)
{
		return a*b;	
}
float div(int a, int b)
{
		return (float)a/b;	
}



3. 创建静态库

root@esp8266-VirtualBox:/mnt/Share/static_dynamic_lib# gcc -o mylib.o -c mylib.c

root@esp8266-VirtualBox:/mnt/Share/static_dynamic_lib# ar rcs libmylib.a mylib.o

root@esp8266-VirtualBox:/mnt/Share/static_dynamic_lib# cp libmylib.a /usr/lib/

main.c

#include "./mylib.h"
#include 
void main(void)
{
		printf("add(5,3) = %d\n",add(5,3));	
}

root@esp8266-VirtualBox:/mnt/Share/static_dynamic_lib# gcc -o main main.c -lmylib


4. 创建动态库

root@esp8266-VirtualBox:/mnt/Share/static_dynamic_lib# gcc -fPIC -shared -o libmylib.so mylib.c

root@esp8266-VirtualBox:/mnt/Share/static_dynamic_lib# cp libmylib.so /usr/lib/

root@esp8266-VirtualBox:/mnt/Share/static_dynamic_lib# gcc -o main main.c /usr/lib/libmylib.so 

注意:使用动态库时,必须指定动态库的全路径













你可能感兴趣的:(Linux)