Visual Studio 15 __imp___iob,__ imp___pctype,__ imp___mb_cur_max

sta*_*tom 13 c++ legacy linker stdio visual-studio-2015

我正在尝试使用在visual studio中使用mingw编译的库.但是,我收到以下链接器错误:

错误LNK2001:未解析的外部符号__imp___iob

错误LNK2019:函数中引用了未解析的外部符号__imp___pctype

错误LNK2019:函数中引用了未解析的外部符号__imp____mb_cur_max

错误LNK2001:未解析的外部符号_fprintf

我能够通过链接与legacy_stdio_definitions.lib来修复_fprintf错误,如下所示:未解析的外部符号__imp__fprintf和__imp____iob_func,SDL2.

但是,我不知道如何解决其他三个未解决的外部问题.我怎样才能解决这个问题?这些库在Visual Studio 2013下完美运行.

编辑:

好的,这是一个更新.我将libmsvcrt.a从mingw lib文件夹移动到Visual Studio中,然后将其添加到链接器设置中.现在它似乎正常工作.

Seb*_*edl 6

这些库是针对旧版本的CRT编译的.您获得的未解析符号是编译库中存在的CRT的内部符号.您必须针对VS2015 CRT(通用CRT)重新编译库.但我不确定MinGW是否支持这一点.

如果你不能这样做,你必须继续使用VS2013编译器.(您可以使用VS2015 IDE,在项目选项中将工具集设置为vs2013.但您仍将受限于2013编译器支持的C++功能.)