1,库的分类
后缀 .a 静态库 libxxxx.a 静态库使用ar编译出来
后缀 .so 动态库 libxxx.so 动态库用gcc编译出来
库的前缀为lib
库的名字xxx
库一般是给别人用的,俗一点讲就是编译好给别人别人不能看你源代码,卖钱嘎嘎好用
库文件都是.o生成的
2,实现静态库编写 先创建2个.c文件(内容随意)
#include <stdio.h>
int AAA()
{
// 不需要函数声明
printf("你好静态库");
return 0;
}
#include <stdio.h>
int AAA();
int main(int argc, char const *argv[])
{
AAA();
return 0;
}
1,生成.o文件
gcc -c jing.c -o jing.o
2,用ar工具把.o生成.a文件
ar rcs libjing.a jing.o
注意顺序.a和.c文件顺序不能写反 .c文件是调用静态库
好处就是程序在哪一个电脑都能运行
坏处是程序变大
rcs :
r:加入成员文件,如果有替换
c:创建一个库
s:强制生成库列表
动态库
还是先写2个.c文件
生成.o文件
gcc -fPIC -c jing.c -o jing.o
生成so文件
gcc -shared jing.o -o libjing.so
生成动态库
运行时失败是因为没有配置环境变量
export LD_LIBRARY_PATH=/home/server/lib/:$LD_LIBRARY_PATH
fPIC: 动态连接
-shared 创建动态库