首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未解决的符号`__imp__iob`,而不是`__imp___iob`

未解决的符号`__imp__iob`,而不是`__imp___iob`
EN

Stack Overflow用户
提问于 2018-03-18 22:28:00
回答 1查看 3.1K关注 0票数 6

我正在用VisualStudio2017编译一个程序,该程序链接到预编译的静态版本libusb (可用的这里 )。

当我试图链接它时,我得到了一些未解决的符号,比如这些,答案指向legacy_stdio_definitions.lib,它解决了所有链接器错误,除了

代码语言:javascript
复制
unresolved external symbol __imp__iob

此页来自微软谈到了legacy_stdio_definitions.lib,并表示它提供了__imp___iob,但没有提到__imp__iob (注意不同的下划线数)。

这里发生了什么事?

(而且,是的,混合CRT版本是个坏主意,我真的应该从源代码编译libusb。我知道。)

EN

回答 1

Stack Overflow用户

发布于 2018-04-04 11:20:03

libusb在VS2018 -32位上也有同样的问题,这帮助了我:

  1. Hacky解决方案:链接器抱怨缺少一些函数--所以只需将它交给它--这样的函数应该返回实现定义的IO函数指针。对于静态链接的libusb-1.0,我必须在代码中添加以下内容: #语用注释(lib,"legacy_stdio_definitions.lib") #ifdef __cplusplus iob[] ={ *stdin,*stdout,*stderr };extern "C“{ FILE * __cdecl _iob(void) {返回iob;}} #endif
  2. 更好的解决方案:只需在VS 2018下重新编译静态库(我假设您也在使用它),并仔细遵循附带的自述文件。
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49353467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档