免费注册 查看新帖 |

Chinaunix

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

编译了一个库,但是为什么调用的时候出现某些函数没有声明的情况? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-01-16 11:39 |只看该作者 |倒序浏览
最近写了一个库(估且称为libloader吧),编译也通过了,但是在调用过程中,报了一个错“undefined reference to `nx_msg_sendrecv'”

这个nx_msg_sendrecv是我同事写的一个函数,是属于另一个库(我在libloader库中,调用了此库的nx_msg_sendrecv函数,已经include了此函数所在的头文件)。

弱弱地问一句,这个是为什么?应该怎么解决?
希望各位能详细说明一下原理,给我扫下盲!不甚感激!!!!

论坛徽章:
0
2 [报告]
发表于 2012-01-16 12:20 |只看该作者
没有链接那个库

论坛徽章:
0
3 [报告]
发表于 2012-01-16 12:33 |只看该作者
LS的意思是说,别人调用我的库函数时,也得链接我所调用的那个库?

论坛徽章:
2
天蝎座
日期:2014-03-28 10:18:052015年亚洲杯之乌兹别克斯坦
日期:2015-02-10 11:32:25
4 [报告]
发表于 2012-01-16 13:06 |只看该作者
库没有放在LD_LIBRARY路径中。。。

论坛徽章:
0
5 [报告]
发表于 2012-01-16 13:39 |只看该作者
txdgtwpv 发表于 2012-01-16 13:06
库没有放在LD_LIBRARY路径中。。。


库不在路径中,运行时会返回没有找到那个库,而不是库中的某个符号。

楼主说的“调用过程中”出错,我认为是连接libloader的程序在编译过程中报的错,而不是运行时报错。
所以解决方法是该程序即连接libloader也要连接你同事的库。

论坛徽章:
0
6 [报告]
发表于 2012-01-16 14:53 |只看该作者
回复 5# jetking

果然是这样的。
但是这样的话,也许要调用我写的库的人,并不知道我引用了哪些库,那怎么办呢?是否我得出一个文档说明?
   

论坛徽章:
0
7 [报告]
发表于 2012-01-16 14:59 |只看该作者
本帖最后由 jetking 于 2012-01-16 15:00 编辑

要不写个说明,要不你给个静态库
你给你同事的库总有测试用例吧,或者是库的使用例子,这个编译参数也是可参照的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP