日期:2014-05-16  浏览次数:21494 次

Linux 动态库 dlopen()失败,errno = 17, File exists
程序在调用动态库时总是返回失败,打印一下errno,提示如下:

errno = 17, File exists

请问此处错误信息是什么意思,有可能是什么原因造成的呢?

谢谢。

------解决方案--------------------
ldd 一下你这个so看看是否正常。
------解决方案--------------------
你的库里面是否用了静态变量?
------解决方案--------------------
探讨
程序在调用动态库时总是返回失败,打印一下errno,提示如下:

errno = 17, File exists

请问此处错误信息是什么意思,有可能是什么原因造成的呢?

谢谢。

------解决方案--------------------
dso_handle.o:
0000000000000000 D __dso_handle

这个符号是libc.a里面的,估计你这个bash_func.so不是在你这个机器上编译的。
那么可能
1,你当前机器上的libc.a没有这个符号
2,链接的库不对,导致找不到没有libc.a