cygwin dlopen 错误:多字节或宽字符无效或不完整

Posted

技术标签:

【中文标题】cygwin dlopen 错误:多字节或宽字符无效或不完整【英文标题】:cygwin dlopen error: Invalid or incomplete multibyte or wide character 【发布时间】:2017-07-11 18:08:57 【问题描述】:

这是 cygwin。

我有一个共享库,其中包含一些其他共享库和一些静态库。调用 dlopen() 时,返回句柄,但 perror() 返回 NULL 并带有“无效或不完整的多字节或宽字符”

显然我的图书馆里有什么东西出了问题。我该如何调试呢?有什么方法可以让 dlopen 告诉我哪个包含的库或函数有问题?

【问题讨论】:

【参考方案1】:

两个问题:

    您检查errno,即使该功能没有失败。 errno 的值仅在前一个函数失败时定义。

    dlopen 失败时,您不应该使用errnoperrorstrerror。你应该使用dlerror

【讨论】:

谢谢!这就是我需要知道的。

以上是关于cygwin dlopen 错误:多字节或宽字符无效或不完整的主要内容,如果未能解决你的问题,请参考以下文章

cygwin

PHP开发-多字节字符串处理及字符编码

PHP开发-多字节字符串处理及字符编码

undefined reference to 'dlopen'错误,dlopen是函数,有人知道是啥原因吗?

标准I/O库 笔记

Node.js 错误 - 返回 process.dlopen(module, path._makeLong(filename));