免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4647 | 回复: 6
打印 上一主题 下一主题

[C] 依赖动态库的时候,如何知道程序所依赖的动态库的版本? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-07-29 16:28 |只看该作者 |倒序浏览
比如依赖libssl.so,写makefile的时候只是加上选项-lssl。当在程序之行的时候,提示'libssl.0.9.8'不存在,而实际上我编译的库文件是libssl.1.0.0。那如何知道程序依赖的库版本呢?????

论坛徽章:
0
2 [报告]
发表于 2014-07-29 16:46 来自手机 |只看该作者
ldd 文件明
pmap 进程id

论坛徽章:
0
3 [报告]
发表于 2014-07-31 10:30 |只看该作者
回复 2# Fixend


    我是说,当编译的时候,如何确定的呢?是不是根据依赖的库的头文件来最终确定所依赖的库的版本信息?

论坛徽章:
0
4 [报告]
发表于 2014-07-31 11:01 |只看该作者
本帖最后由 Fixend 于 2014-07-31 11:01 编辑
wavespider 发表于 2014-07-31 10:30
回复 2# Fixend

链接什么库是你自己指定的,你指定了什么就是什么,-L指定目录,-l指定库名。

论坛徽章:
0
5 [报告]
发表于 2014-07-31 11:24 |只看该作者
回复 4# Fixend


    对,我明白,但是比如引用libssl.so.1.0.0 或者libssl.so.0.9.8 那写Makefile的时候,肯定是-lssl,不带版本。现在问题是这样的,之前引用过ilbssl.so.0.9.8,然后更新成libssl.so.1.0.0以后,当执行程序的时候,还提示找libssl.so.0.9.8。那什么决定了这个呢?我后来猜测可能是引用的头文件还是之前libssl.so.0.9.8的头文件导致的。。。

论坛徽章:
0
6 [报告]
发表于 2014-07-31 11:32 |只看该作者
回复 5# wavespider
链接命令都改了还不对,是不是有的模块没clean


   

论坛徽章:
0
7 [报告]
发表于 2014-07-31 11:42 |只看该作者
回复 6# dooqaqa

    最后发现确实是头文件没更新导致的。
        
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP