gpt4 book ai didi

c++ - 我正在尝试将 2005 时代的库与 MSVC 2013 一起使用,但我在 Release模式下遇到 Unresolved external 错误

转载 作者:太空宇宙 更新时间:2023-11-04 11:40:59 24 4
gpt4 key购买 nike

设置:我已经在 VS 2013 和 DirectX SDK 2010 中成功编译了 DarkGDK,这是一个设计用于 DirectX SDK 2007 和 VS 2008 的库。我用自定义虚拟库替换了一个组件库来解决 DirectX 冲突。我能够成功编译所有这些组件库。

问题:当我在 Release模式下编译使用 DarkGDK 库的项目时,一切都按预期进行。我确实收到一个消息框,提示二进制文件是在没有调试信息的情况下构建的,但我的程序运行了。但是,在 Debug模式下,我遇到了一些错误。下面找到一个我认为能很好地代表该批处理的样本:

1>convmdl.lib(ConvMDL.obj) : error LNK2019: unresolved external symbol __CrtDbgReportW referenced in function "void __cdecl QuaternionSlerp(float const * const,float * const,float,float * const)" (?QuaternionSlerp@@YAXQBMQAMM1@Z)
1>libcpmtd.lib(stdthrow.obj) : error LNK2001: unresolved external symbol __CrtDbgReportW
1>system.lib(CSystemC.obj) : error LNK2001: unresolved external symbol __CrtDbgReportW
1>system.lib(dxdiaginfo.obj) : error LNK2001: unresolved external symbol __CrtDbgReportW
1>convx.lib(ConvX.obj) : error LNK2001: unresolved external symbol __CrtDbgReportW
1>convmd3.lib(ConvMD3.obj) : error LNK2001: unresolved external symbol __CrtDbgReportW
1>basic3D.lib(CBSPTree.obj) : error LNK2001: unresolved external symbol __CrtDbgReportW
1>basic3D.lib(CCompiler.obj) : error LNK2001: unresolved external symbol __CrtDbgReportW
1>basic3D.lib(ProcessHSR.obj) : error LNK2001: unresolved external symbol __CrtDbgReportW
1>world.lib(Patch.obj) : error LNK2001: unresolved external symbol __CrtDbgReportW
1>basic3D.lib(Universe.obj) : error LNK2001: unresolved external symbol __CrtDbgReportW
1>basic3D.lib(cLightMaps.obj) : error LNK2001: unresolved external symbol __CrtDbgReportW
1>basic3D.lib(CSG.obj) : error LNK2001: unresolved external symbol __CrtDbgReportW
1>basic3D.lib(NVMeshMenderD3DX.obj) : error LNK2001: unresolved external symbol __CrtDbgReportW
1>image.lib(CImageC.obj) : error LNK2001: unresolved external symbol __CrtDbgReportW
1>animation.lib(CAnimation.obj) : error LNK2001: unresolved external symbol __CrtDbgReportW
1>basic3D.lib(DBOFormat.obj) : error LNK2001: unresolved external symbol __CrtDbgReportW
1>basic3D.lib(CObjectManagerC.obj) : error LNK2001: unresolved external symbol __CrtDbgReportW
1>core.lib(RenderList.obj) : error LNK2001: unresolved external symbol __CrtDbgReportW
1>display.lib(CGfxC.obj) : error LNK2001: unresolved external symbol __CrtDbgReportW
1>file.lib(CFileC.obj) : error LNK2001: unresolved external symbol __CrtDbgReportW
1>sprites.lib(CSpriteManagerC.obj) : error LNK2001: unresolved external symbol __CrtDbgReportW
1>Debug\Weapon Creator 2 - Project Golden Girl.exe : fatal error LNK1120: 1 unresolved externals

这几天我一直在搜索这个问题。我已经检查了属于 DarkGDK 库的所有项目设置和我自己的项目设置。在调试配置中,它们都使用“多线程调试 (/MTd)”。

长话短说尝试在使用 DarkGDK 库的 Debug 配置中编译项目时出现上述错误。所有项目都具有相同的 Windows 库和 C 运行时设置。

谢谢!

编辑:更改错误以反射(reflect) Dauphic 的贡献。

最佳答案

您正在混合调试和发布运行时。

__CrtDbgReportW 仅存在于调试运行时。如果未解决,则意味着您可能正在使用发布运行时进行编译,但您的库之一正在使用调试运行时。您必须重新编译一个或另一个,因此它们都使用相同的版本。

您可以在 Project Properties -> C/C++ -> Code Generation -> Runtime Library 找到运行时属性

对于未解析的ATL符号,我相信你需要链接atls.lib

关于c++ - 我正在尝试将 2005 时代的库与 MSVC 2013 一起使用,但我在 Release模式下遇到 Unresolved external 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21418986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com