动态库函数

动态库函数的制作:
1、生成目标文件:gcc -c file.c
2、
gcc -shared -fpic -o libfile.so file.o
其中
-fpic:产生位置无关代码
-shared:生成共享库
用上述命令生成libaddsub.so动态库函数
gcc -o out main.c -L. -lfile
此时不能立即./out输出,因为在动态库函数使用时,会查找/usr/lib /lib目录下的动态库函数,而此时我们生成的库不在里面。

练习代码和静态的一样
方法一:

libaddsub.so 复制到/usr/lib或/lib中去

动态库函数

方法二:假设libfile.so在/home/linux/file
LD_LIBRARY环境变量,把动态库的路径添加到环境变量
export LD_LIBRARY_PATH=/home/linux/addsub: $LD_LIBRARY_PATH
再用echo $LD_LIBRARY_PATH查看环境变量

动态库函数
方法三:
修改配置脚本
在/etc/ld.so.conf文件里加入我们生成的库的目录,修改后的文件要重新运行配置脚本,用ldconfig /sbin/ldconf命令因为方法二的环境变量没有修改文件,所以把终端重启后会消失
动态库函数
/etc/ld.so.conf是非常重要的一个目录,里面存放的是链接器和加载器搜索共享库时要检查的目录,默认是从/usr/lib /lib中读取的,所以想要顺利运行,可以把库的目录加入到这个文件中并执行
/sbin/ldconf

动态库函数