ошибка LNK2001: неразрешенный внешний символ ___iob_func в VS2017 - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь скомпилировать приложение в VS2017 (C ++) и получаю сообщения об ошибках:

1>libeay32.lib(cryptlib.obj) : error LNK2001: unresolved external symbol ___iob_func
1>libeay32.lib(pem_lib.obj) : error LNK2001: unresolved external symbol ___iob_func
1>libeay32.lib(ui_openssl.obj) : error LNK2001: unresolved external symbol ___iob_func

Другие сообщения о такой ошибке относятся к VS2015 и относятся к stdin, stdout и stderr,Но эти исправления у меня не сработали.

Странно, если я перейду к stdin в коде и (щелкнув правой кнопкой мыши) перейду к определению, это приведет меня к включенным в Visual Studio 11.0 каталогам, а не к VS2017.

Моя ошибка в libeay32.lib , где я нигде не могу найти источник C ++.

У кого-нибудь еще была эта проблема?

1 Ответ

0 голосов
/ 28 ноября 2018

Я нашел это решение и добавил эти строки в свой проект VS 17 C ++

#define stdin  (__acrt_iob_func(0))
#define stdout (__acrt_iob_func(1))
#define stderr (__acrt_iob_func(2))

FILE _iob[] = { *stdin, *stdout, *stderr };
extern "C" FILE * __cdecl __iob_func(void) { return _iob; }

This worked for me.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...