C-动态链接库

1 LInux 生成动态链接库

gcc -shared -fPIC factorial.c fibonacci.c  -o libmathutils.so
选项 说明
-shared 生成一个共享库。
-fPIC 生成与地址无关的动态链接库。

2 windows 生成动态链接库

gcc -shared -fPIC -wl,--out-implib,libmathutils.a factorial.c fibonacci.c  -o libmathutils.dll
选项 说明
-shared 生成一个共享库。
-fPIC 生成与地址无关的动态链接库。
-wl,--out-implib,libmathutils.a 导入windows依赖库。

3 查看动态链接库的符号

objdump  -t libmathutils.so | grep Fibonacci
选项 说明
-t 动态链接库的显示符号列表

4 指定自定义的动态链接库编辑

gcc 03.shared_library.c -Lmathutils -lmathutils -o 03.shared_library
选项 说明
-L 动态链接库的地址。
-l 动态链接库的名字,不要加so.

5 动态链接库的加载

动态链接库已存放在mathutils 目录。但是LInux 程序运行时缺无法知道。
所以这里需要将LD_LIBRARY_PATH 环境变量设置为以下形势。
这样二进制程序能够成功的去调用动态链接库。

export LD_LIBRARY_PATH=/home/dev/Chapter13/mathutils/