我正在尝试使用Visual Studio 2013编译我的游戏。游戏使用Box2D,但在发布模式下编译时,发布Box2D.lib会出错。使用调试Box2D.lib在调试模式下编译时,它工作正常。
我得到135个错误,主要是这三个错误:
1>Box2D.lib(b2CollideEdge.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
1>MyContactListener.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) char const * __cdecl std::_Winerror_map(int)"
(__imp_?_Winerror_map@std@@YAPBDH@Z)
1>Box2D.lib(b2ContactManager.obj) : error LNK2001: unresolved external symbol _atexit
我现在已经多次构建了Box2D.lib,我确信我正在链接到正确的版本和调试库。
我尝试禁用编译器标志/ GS(缓冲区安全检查),但这没有帮助。
为了构建Box2D.lib并在编译游戏时,我使用标题多线程DLL(/ MD)作为运行时库。
编辑:当我与库“bufferoverflowU.lib”链接时,我摆脱了错误“@__ security_check_cookie @ 4”。仍有133个错误。
答案 0 :(得分:0)
您可能已禁用链接器选项中的默认运行时库链接。右键单击项目并转到属性。在Linker->输入下,将选项忽略所有默认库设置为否。