静态库和动态库
静态库
Linux中静态库以lib
作为前缀,.a
作为后缀,中间是库的名字。即libxxx.a
Windows中静态库以lib
作为前缀,.lib
作为后缀,中间是库的名字。即libxxx.lib
生态静态链接库(ar)
- c:创建一个库
- s:创建归档索引
- r:醍醐寺内归档文件中已有的文件或加入新文件
.
├── include
│ └── head.h
└── src
├── add.c
├── div.c
├── mult.c
└── sub.c
1 |
|
静态库的使用
.
├── include
│ └── head.h
├── lib
│ └── libcalc.a
└── main.c
- -I:指定include包含的头文件路径
- -L:指定静态库/动态库路径
- -l:指定静态库/动态库名字(掐头去尾)
1 |
|
动态库
Linux中动态库以lib
作为前缀,.so
作为后缀,中间是库的名字。即libxxx.so
Windows中动态库以lib
作为前缀,.dll
作为后缀,中间是库的名字。即libxxx.dll
生成动态链接库(-fpic, -shared)
- -fpic:生成与位置无关的代码
- -shared:生成一个动态链接库
.
├── include
│ └── head.h
└── src
├── add.c
├── div.c
├── mult.c
└── sub.c
1 |
|
动态库的使用
.
├── include
│ └── head.h
├── lib
│ └── libcalc.so
└── main.c
1 |
|
添加动态库加载目录
方法1:修改LD_LIBRARY_PATH
1.找到相关的配置文件
- 用户级别:
~/.bashrc
- 系统级别:
/etc/profile
2.使用vim打开配置文件,并添加动态库绝对路径(pwd查看)
1 |
|
3.让配置文件生效
1 |
|
方法2:更新/etc/ld.so.conf文件
1.将动态库的绝对路径添加到文件的末尾
1 |
|
2.更新/etc/ld.so.conf
文件
1 |
|
方法3:拷贝动态库到/lib/
或/usr/lib
文件中
1 |
|
方法4:将库的软链接放到/lib/
或/usr/lib
文件中
1 |
|
Reference
静态库和动态库
http://example.com/2025/02/22/Cpp/静态库和动态库/