# linux C++调用so库,dlopen返回错误errno 16
# 问题
在测试一个第三方合作伙伴编译好的so库时,用dlopen()调用,结果返回null,获取errno为16,用dlerror()获取错误信息返回如下:
Error loading shared library ./libencode.so: Resource busy
在搜索引擎搜索也没头绪,后来尝试用nm -D libencode.so|awk '{if($2=="T"){print $3}}'
,查看动态库导出函数时,发现没有相关函数导出
后来才再经过一番折腾才发现这他妈的压根不是动态库,这是个可执行程序,结果直接运行./libencode.so
证实了这个想法
# 解决
应该是编译的一些配置导致,直接联系合作伙伴重新编译库