标签: c++ cygwin shared-libraries dlopen
这是cygwin。
我有一个共享库,其中包含一些其他共享库和一些静态库。当调用dlopen()时,返回一个句柄,但是perror()返回NULL,带有"无效或不完整的多字节或宽字符"
显然我的图书馆内的某些内容失败了。我该怎么调试呢?有没有办法让dlopen告诉我哪个包含库或函数有问题?
答案 0 :(得分:2)
两个问题:
即使功能没有失败,也要检查errno。 errno的值仅在前一个函数失败时定义。
errno
dlopen失败时,您不应该使用errno,perror或strerror。您应该使用dlerror。
dlopen
perror
strerror
dlerror