静态库
编译时候放入可执行文件
生成
1 | 1. gcc -c main.cpp -o main.o |
命名
1 | libxxx.a |
操作
1 | ar rcs libmyhello.a hello.o |
动态库
运行时候载入内存
命名
1 | libxxxx.so.major.minor |
操作
1 | gcc -shared -fPIC -o libmyhello.so hello.o |
执行时候如何定位动态库位置
1 | LD_LIBRARY_PATH 里面记录了位置 |
这个目录自动包含
1 | /lib |
在新安装一个库之后如何让系统能够找到他
如果安装在/lib或者/usr/lib下,那么ld默认能够找到,无需其他操作。
如果安装在其他目录,需要将其添加到/etc/ld.so.cache文件中,步骤如下
- 编辑/etc/ld.so.conf文件,加入库文件所在目录的路径
- 运行ldconfig,该命令会重建/etc/ld.so.cache文件
动态库查找目录
1 | 它先后搜索 |
查看依赖
1 | ldd /bin/lnlibc.so.6 |