链接库
- 二进制文件
- 将源码转换成二进制格式的源代码
- 加密
使用
- 头文件
- 制作出的库
静态库
- 命名规则:libtest.a
- lib
- xxx -库的名字
- .a
- 制作步骤:
- 源代码.c.cpp
- 将.c文件生成.o
- gcc a.c b.c -c
- 将.o打包
- ar rcs静态库名 *.o
- ar rcs libtest.a a.o b.o
- ar - archive
- 库的使用:
- gcc test.c -I ./ -L./lib -lxxx -0 app
- -L 指定库的路径
- -l 指定库的名字去掉lib和.a
- gcc test.c -I ./ -L./lib -lxxx -0 app
动态库
- 命名规则:
- libxxx.so
- 制作步骤:
- 源代码生成.o
- gcc a.c b.c -c -fpic(fPIC)
- 打包
- gcc -shared a.o b.o -o libxxx.so
- 源代码生成.o
- 库的使用:
- 头文件 a.h
- 动态库libtest.so
- 参考函数声明编写测试程序 main.c
- gcc main.c -I ./header/ -L ./lib/ -l test -o app
- 动态库无法加载:
- 使用环境变量:
- 临时设置:
- 在终端:export LD_LIBRARY_PATH=动态库路径 :$LD_LIBRARY_PATH
- 永久设置:
- 用户级别:修改 ~/.bashrc source ~/.bashrc
- 系统级别:/etc/profile
- source ~/.bashrc
- 临时设置:
- 使用环境变量: