一、用gcc生成静态库和动态库
一、静态库实例
①生成hello.c;main.c;hello.h文件
hello.c:
#include<stdio.h>
void hello(const char *name)
{
printf("Hello %s\n",name);
}
hello.h:
#ifndef HELLO_H
#define HELLO_H
void hello(const char *name);
#endif//HELLO_H
main.c;
#include"hello.h"
int main()
{
hello("everyone");
return 0;
}
②预处理生成hello.o文件
③创建静态库:ar -crv libmyhello.a hello.o
④使用静态库
gcc -o hello main.c -L. -lmyhello
gcc main.c libmyhello.a -o hello
生成main.o:gcc -c main.c
生成可执行文件:gcc -o hello main.c libmyhello.a
二、动态库实例
①创建静态库:gcc -shared -fPIC -o libmyhello.so hello.o
②执行动态库:gcc -o hello main.c -L. -lmyhello或gcc main.c libmyhello.so -o hello
这时候会报错:
解决方法:创建一个新的文件夹123将libmyhello.so复制到目录123中
这里会遇到一个权限问题,我们可以用sudo解决;
③执行结果