Linux系统中以.a为后缀的文件都为静态库,以.so为后缀的文件都为共享库
1. 创建静态库
1) gcc -c xxx.c 生成.o文件
2) ar -r lib静态库名.a xxx.o ...
3) 使用静态库
将静态库文件 libxxx.a所在的路径配置到环境变量LIBRARY_PATH下
3) 连接静态库
gcc xxx.o -l静态库名
如果环境变量LIBRARY_PATH没有配置静态库的路径,可直接连接:
gcc xxx.o -l静态库名 -L 静态库文件所在路径
还可以直接连接:gcc xxx.o libxxx.a
nm libku.a //查看libku静态库文件的内容
2. 共享库
1) 创建共享库
gcc -c -fpic xxx.c ... 生成目标xxx.o
gcc -shared xxx.o -o lib库名.so
2) 使用共享库
a. 连接
gcc xxx.o -l库名 -L 共享路径
或者把共享库文件所在的路径配置到环境变量LIBRARY_PATH
b. 运行
a.out 要求共享库在LD_LIBRARY_PATH环境变量指定的路径下能找到共享库文件
ldd 列出共享库的依赖关系
lib testdku //查看运行testdku都用到哪些动态库