静态库和动态库
1.静态库
格式必须以lib***.a结尾
1.1 创建静态库过程
c:创建库
r:将方法添加到库中
v:显示过程
(1) add.c mul.c 编译 add.o mul.o
(2)创建静态库:ar cry libfoo.a add.o mul.o
(3)使用静态库 链接静态库:gcc -o main main.c -L . -l foo (-L 后指定路径 -l 后指定库文件名称)
1.2 特点
每一个程序 静态链接库文件,生成的可执行文件都包含相同的一份副本
2.动态库(共享库)
格式必须为lib***.so
2.1创建动态库过程
方法一移动动态库到/usr/lib 或/lib下:
(1).c编译成.o文件
(2).o 生成共享文件:gcc -shared -fPIC -o libfoo.so add.o mul.o
(3)将共享文件移动到lib路径下
(4)共享库文件的使用:gcc -o main main.c -lfoo
方法二:修改环境变量
修改环境变量,使得动态链接路径由原来的/usr/lib 或/lib 修改为自定义路径
命令:export LD_LIBRARY_PATH=. (将环境变量修改为当前路径)
删除环境变量:unset $LD_LIBRARY_PATH. (删除当前路径的环境变量)