重点之静态库与共享库的构建和使用:
1、静态库
- 制作静态库:
1、编译出目标文件
gcc -c code.c
2、打包目标文件生成静态库
ar -r libxxx.a a.o b.o c.o…
注意:库名格式必须是libxxx.a - 使用静态库:
1、直接使用
gcc code.c libxxx.a
2、指定库文件的位置
-L 指定库的路径 -l指定库名 【库名去掉前缀和后缀 -lxxx】
3、通过设置环境变量的方式来指定库的查找路径 -l指定库名
打开配置文件:vim ~/.bashrc
在文件末尾添加:export LIBRARY_PATH=$LIBRARY_PATH:路径
保存退出并重新加载:source ~/.bashrc
注意:如果是删除环境变量,需要关闭终端、再打开
直接使用静态库:gcc code.c -lxxx
2、共享库
- 制作共享库:
1、编译生成目标文件
gcc -fpic -c code.c
fpic:位置无关
2、生成共享库
gcc -shared -fpic a.o b.o c.o… -o libxxx.so - 使用共享库:
1、直接使用
gcc code.c libxxx.so
注意:失败是因为执行共享库时,默认的加载路径是/lib
2、指定库文件的位置
-L 指定库的路径 -l指定库名 【库名去掉前缀和后缀 -lxxx】
3、通过设置环境变量的方式来指定库的查找路径 -l指定库名
打开配置文件:vim ~/.bashrc
在文件末尾添加:export LIBRARY_PATH=$LIBRARY_PATH:路径
保存退出并重新加载:source ~/.bashrc
gcc code.c -lxxx
3、辅助工具
ldd 查看可执行程序依赖哪些共享库 ldd ./a.out
nm 查看目标文件、可执行文件、静态库、共享库中的符号列表
strip 减肥,删除目标文件、可执行文件、静态库、共享库中的符号列表
objdump 显示目标文件、可执行文件、静态库、共享库的反汇编信息