在VS2013中编译:使用C ++错误LNK2001

时间:2014-12-02 15:02:27

标签: c++ visual-studio-2013 compilation linker lnk2001

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

1 个答案:

答案 0 :(得分:0)

您可能已禁用链接器选项中的默认运行时库链接。右键单击项目并转到属性。在Linker->输入下,将选项忽略所有默认库设置为否。