LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1293|回复: 6

share library的问题

[复制链接]
发表于 2002-12-16 18:17:12 | 显示全部楼层 |阅读模式
编译时 gcc -fPIC -c my.c
建立库时 gcc -shared -W1,-soname,libmy.so.1 -o libmy.so.1.0 my.o
生成了库 libmy.so.1.0
执行 ldconfig -n ./
不能产生链接文件 libmy.so.1
为什么?
发表于 2002-12-16 19:08:38 | 显示全部楼层
你能把完整的错误提示贴出来吗?
 楼主| 发表于 2002-12-16 20:09:30 | 显示全部楼层
没有什么错误提示,似乎一切正常
就是没有产生libmy.so.1
发表于 2002-12-16 20:43:39 | 显示全部楼层
那你把你自定义的动态库路径加入到/etc/ld.conf中试试。
 楼主| 发表于 2002-12-16 21:23:28 | 显示全部楼层
在我的目录下,执行ldconfig ./
结果,不产生libmystuff.so.1联接,
执行ldconfig -p |grep libmy
结果libmystuff.so.1.0.1 (libc6) => ./libmystuff.so.1.0.1

把目录写到ld.so.conf,结果一样
发表于 2002-12-17 11:39:53 | 显示全部楼层
研究了一下,你在你的动态库文件所在的目录执行如下命令:
ln -s libmy.so.1.0 libmy.so.1
ln -s libmy.so.1 libmy.so
ldconfig -n ./
然后中你的用户主目录下.bashrc里面加上:
export LD_LIBRARY_PATH=<你的动态库所在目录>LD_LIBRARY_PATH
以后调用动态库就用
gcc -I<动态库中函数所用头文件的位置> -L<你的动态库目录> -lmy ......
就行了
 楼主| 发表于 2002-12-17 20:13:43 | 显示全部楼层
问题解决了,
真不好意思!
gcc -shared -Wl,-soname,libmylong.so.1 -o libmyleng.so.1.2 bill.o linus.o
“-Wl”中的“l”是“L”,我认为是“1(一)”了
多谢你的指点
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表