动态库的制作

Untitled

第一步:编译汇编源代码,生成目标文件

gcc -c -fpic add.c div.c sub.c mult.c

第二步:从目标文件生成动态库文件

gcc -shared add.o div.o sub.o mult.o -o libcalc.so

动态库的使用

与静态库相同方式编译main会出错

Untitled

动态库加载失败的原因

Untitled

Untitled

如何定位共享库文件?

Untitled

动态载入器搜索共享库文件。对于elf格式的可执行文件,由 ld-linux.so 按以下顺序进行搜索:

  1. elf文件的DT_RPATH段(无法修改)
  2. 环境变量 LD_LIBRARY_PATH