# 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证实了这个想法

# 解决

应该是编译的一些配置导致,直接联系合作伙伴重新编译库

Last Updated: 1/20/2024, 11:02:15 AM