常用命令
1. nm 列出动态和静态库中的符号信息
2.ldconfig 加载动态链接库配置文件。其包含了动态链接库的路径
3.ldd命令查看可执行程序所依赖的动态库
动态载入器ld-linux.so*的主要作用搜索动态库的文件路径,找到
相应库文件后将其载入内存中,其搜索顺序是
1.是elf文件的DT_RPATH段
2.是LD_LIBRARY_PATH环境变量
3是配置文件/etc/ld.so.cache文件列表
4./lib,/usr/lib系统路径
当静态库和动态库同名时,链接器默认优先加载动态库
分别指定动态和静态链接
gcc main.o -o a.out -WI,-Bstatic -lhello -WI,-Bdynamic -lword
动态库往往包含版本号,所以往往要用符号链接来表明不同版本号
gcc -share -Wl,-soname,libhello.so.1 -o libhello.so.1.o hello.o
ln -s libhello.so.1.o libhello.so.1
ln -s libhello.so.1 libhello.so
生成静态库:
ar rcs libhello.a hello.o