gpt4 book ai didi

c++ - 错误 LNK2019 : unresolved external symbol ___iob_func referenced in function "void __cdecl Padding(int)"

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:47:58 32 4
gpt4 key购买 nike

使用 FTDI API 可以在 Visual Studio 2012 下正常编译和链接。

但在 VS 2014 下,它给出:

Error LNK2019: unresolved external symbol ___iob_func referenced in function "void __cdecl Padding(int)"

标准库有变化吗?

最佳答案

是的,标准库已经改变,FTDI 似乎并不关心 - 至少从 CDM2.12.18 驱动程序版本开始不关心。

问题在 this question 的答案中描述。 .

ftd2xx.libdevcon.objvoid __cdecl Padding(int) 函数是罪魁祸首。它引用 stdinstdoutstderr 之一,作为宏给出。这些宏的内容发生了变化。

由于我们并不真正期望来自 FTDI 库的任何 I/O,我们不妨提供尽可能简单的实现:

FILE* __cdecl _imp____iob_func() { return 0; }

如果你想要一个能做它应该做的事情的版本:

FILE* __cdecl _imp____iob_func()
{
struct _iobuf_VS2012 { // ...\Microsoft Visual Studio 11.0\VC\include\stdio.h #56
char *_ptr;
int _cnt;
char *_base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char *_tmpfname; };
// VS2015 has FILE = struct {void* _Placeholder}

static struct _iobuf_VS2012 bufs[3];
static char initialized = 0;

if (!initialized) {
bufs[0]._ptr = stdin->_Placeholder;
bufs[1]._ptr = stdout->_Placeholder;
bufs[2]._ptr = stderr->_Placeholder;
initialized = 1;
}

return (FILE*)&bufs;
}

关于c++ - 错误 LNK2019 : unresolved external symbol ___iob_func referenced in function "void __cdecl Padding(int)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26006359/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com