我正在尝试使用 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 个错误。