我正在尝试编译 apitest ..
克隆并 cmake -G "Visual Studio 14 2015 Win64" ..
按照指示,一切正常
第一个问题,很多,我什至没有得到错误列表:
error LNK2019: unresolved external symbol _CrtDbgReport referenced in function _CRT_RTC_INIT
Gogled,他们说要切换
项目属性 -> 配置属性 -> C/C++ -> 代码生成 -> 运行时库
从多线程 DLL 到多线程调试 DLL
好的,我尝试再次构建,它再次失败,但至少这次我得到了错误列表..
又是我的朋友:
Severity Code Description Project File Line Suppression State
Error LNK2019 unresolved external symbol _CrtDbgReport referenced in function _CRT_RTC_INIT SDL2 C:\Users\GBarbieri\Documents\Visual Studio 2015\Projects\apitest_out\thirdparty\SDL2-2.0.1\MSVCRTD.lib(_init_.obj) 1
该 答案 表示该项目仅与 C 运行时 (CRT) 库的一部分 msvcrtd.lib
。我还需要链接库 vcruntimed.lib
和 ucrtd.lib
。
很好,但是怎么做?
apitest 是基于许多项目的解决方案,我想我必须手动将一些东西添加到 SDL2 中。我尝试了很多尝试,尤其是在 Linker -> Input -> Additional Dependencies 下,但我从来没有让它工作
我在 msvcrtd.lib
下找到了 --- C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib
虽然我猜该解决方案正在尝试构建自己的解决方案。
我发现 vcruntimed.lib
在与 msvcrtd.lib
相同的地方。而是 ucrtd.lib
位于 C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\x64
提前致谢..
ps:我有VS15社区版
原文由 elect 发布,翻译遵循 CC BY-SA 4.0 许可协议
这似乎是一个 SDL 问题。 这 是 SDL 论坛中关于它的讨论,基本上有以下解决方案 - 添加您提到的库,采用适当的 VS2015 版本构建(线程中有一个链接)或从源构建 SDL(线程提到应该也工作)。