LinuxSir.cn,穿越时空的Linuxsir!

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

关于so文件的问题,编译时我用的是gcc -l<name>,但是程序运行时偏偏加

[复制链接]
发表于 2007-6-3 19:33:02 | 显示全部楼层 |阅读模式
比如我现在遇到的问题,编译可执行文件时我用:
gcc -g -Wall -ldomc program.c -o program
运行程序时找不到libdomc.so.0.8就会报错...
为什么后面会需要一个版本号呢?
发表于 2007-6-4 10:18:47 | 显示全部楼层
一般的的动态库不都是这个样子的么,真正的库文件是
lib<name>.so.<version>.<subversion>
然后提供几个
lib<name>.so.<version>
lib<name>.so
的符号链接
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-4 10:53:25 | 显示全部楼层
Post by DoDo
一般的的动态库不都是这个样子的么,真正的库文件是
lib<name>.so.<version>.<subversion>
然后提供几个
lib<name>.so.<version>
lib<name>.so
的符号链接
但是程序运行时只认 libdomc.so.0.8,假如我把 libdomc.so.0.8改成libdomc.so程序运行就报错找不到动态文件了,怎样设置程序运行时找到的是 libdomc.so而不是libdomc.so.0.8,我在编译的时候明明用的选项是-ldomc,也没有指定版本号阿
回复 支持 反对

使用道具 举报

发表于 2007-6-4 12:04:39 | 显示全部楼层
反过来思考一下, 既然程序寻找的是 libdomc.so.0.0, 而我们现有的是 libdomc.so, 那么做一个符号链接不就可以了么
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-4 16:32:46 | 显示全部楼层
Post by DoDo
反过来思考一下, 既然程序寻找的是 libdomc.so.0.0, 而我们现有的是 libdomc.so, 那么做一个符号链接不就可以了么

做一个符号链接的确很简单,但是我需要学习并且知道为什么程序寻找的是 libdomc.so.0.0啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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