当前位置: 技术问答>linux和unix
ubuntu中如何配置生成、使用共享库
来源: 互联网 发布时间:2016-06-16
本文导语: 本人使用ubuntu 9.04系统,正在学习linux程序设计。主要包括4个文件bill.c,fred.c,lib.h,program.c,文件均在/usr/local/temp文件夹中。 bill.c和fred.c程序很简单,就是一个printf而已,打算把这两个函数连接成一个...
本人使用ubuntu 9.04系统,正在学习linux程序设计。主要包括4个文件bill.c,fred.c,lib.h,program.c,文件均在/usr/local/temp文件夹中。
bill.c和fred.c程序很简单,就是一个printf而已,打算把这两个函数连接成一个共享库。本人做了一下处理
gcc -fIPIC -c bill.c fred.c
gcc -shared -o bill_fred.so bill.o fred.o -lc
gcc -o program program.o bill_fred.so
之后产生program后执行之,出错
./program: error while loading shared libraries: bill_fred.so: cannot open shared object file: No such file or directory
看了一些文章说要添加某些项在/etc/ld.so.conf ,但我看我的这个文件只有一行include /etc/ld.so.conf.d/*.conf,没其他地址,于是按照文章加了句/usr/local/lib
执行了句/sbin/ldconfig –v但结果一样
bill.c和fred.c程序很简单,就是一个printf而已,打算把这两个函数连接成一个共享库。本人做了一下处理
gcc -fIPIC -c bill.c fred.c
gcc -shared -o bill_fred.so bill.o fred.o -lc
gcc -o program program.o bill_fred.so
之后产生program后执行之,出错
./program: error while loading shared libraries: bill_fred.so: cannot open shared object file: No such file or directory
看了一些文章说要添加某些项在/etc/ld.so.conf ,但我看我的这个文件只有一行include /etc/ld.so.conf.d/*.conf,没其他地址,于是按照文章加了句/usr/local/lib
执行了句/sbin/ldconfig –v但结果一样
|
看 bill_fred.so 放哪,把它的路径加进去
这句的目的是 so 路径分类,写在 /etc/ld.so.conf.d 下各自的 conf 文件中
这样会比较清晰些
更改配置文件后,执行一下
这样会更新 so 文件的缓存,之后就会搜索到 lz 的库文件了
include /etc/ld.so.conf.d/*.conf
这句的目的是 so 路径分类,写在 /etc/ld.so.conf.d 下各自的 conf 文件中
这样会比较清晰些
更改配置文件后,执行一下
ldconfig
这样会更新 so 文件的缓存,之后就会搜索到 lz 的库文件了