gpt4 book ai didi

visual-studio - 如何解决 Visual Studio 中的以下链接器错误?

转载 作者:行者123 更新时间:2023-12-04 13:02:10 24 4
gpt4 key购买 nike

这是我的场景。我有一个包含 30 个子项目的项目。在其中一个项目中,我使用了 CLR(公共(public)语言运行时),因此我使用/mdd(多线程调试 DLL)修改了它的运行时。

单独地,所有项目都成功构建。但是当我尝试编译主要
项目我收到以下链接器错误:

LINK : warning LNK4098: defaultlib 'MSVCRTD' conflicts with use of other libs; use /NODEFAULTLIB:library


LIBCMTD.lib(winxfltr.obj) : error LNK2005: __XcptFilter already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(invarg.obj) : error LNK2005: __invalid_parameter already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(invarg.obj) : error LNK2005: __invoke_watson already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(crt0.obj) : error LNK2005: _mainCRTStartup already defined in MSVCRTD.lib(crtexe.obj)
LIBCMTD.lib(fclose.obj) : error LNK2005: _fclose already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(printf.obj) : error LNK2005: _printf already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(mbstowcs.obj) : error LNK2005: _mbstowcs already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(dbgrptw.obj) : error LNK2005: __CrtDbgReportW already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(wcstombs.obj) : error LNK2005: _wcstombs already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(tzset.obj) : error LNK2005: __tzset already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(stricmp.obj) : error LNK2005: __stricmp already defined in MSVCRTD.lib(MSVCR80D.dll)

如何解决这一切?

最佳答案

LIBCMTD 是静态多线程 C 运行时库的调试版本。 MSVCR80D 是基于 DLL 的多线程 C 运行时库的调试版本。你的一些子项目需要一个,一些另一个。这是微软的烂摊子,但你必须处理它。选择一个,比如说,多线程调试 DLL,并将其专门用于项目的调试版本和所有子项目。 Microsoft 许可证(有人告诉我)要求您对已发布的软件使用非调试版本。

有关详细信息,请参阅以下内容:CLICK.

Screenshot

关于visual-studio - 如何解决 Visual Studio 中的以下链接器错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/925540/

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