2

弹出以下错误列表。如果这发生在发布版本上,我很好。

它发生在 DEBUG 构建中是相当令人惊讶的。

1>libcmtd.lib(dbgheap.obj) : 错误 LNK2005: malloc 已在 libcmt.lib(malloc.obj) 中定义
1>libcmtd.lib(dbgheap.obj) : 错误 LNK2005: _heap_alloc 已在 libcmt.lib(malloc.obj) 中定义obj)
1>libcmtd.lib(dbgheap.obj) : 错误 LNK2005: calloc 已经定义在 libcmt.lib(calloc.obj)
1>libcmtd.lib(dbgheap.obj) : 错误 LNK2005: realloc 已经定义在 libcmt.lib( realloc.obj)
1>libcmtd.lib(dbgheap.obj):错误 LNK2005:_recalloc 已在 libcmt.lib(realloc.obj) 中定义
1>libcmtd.lib(dbgheap.obj):错误 LNK2005:_expand 已在 libcmt 中定义。 lib(expand.obj)
1>libcmtd.lib(dbgheap.obj) : error LNK2005: free already defined in libcmt.lib(free.obj)
1>libcmtd.lib(dbgheap.obj):错误 LNK2005:_msize 已在 libcmt.lib(msize.obj) 中定义 1>libcmtd.lib(dbgheap.obj):错误 LNK2005:_aligned_malloc 已在 libcmt.lib(align.obj)
中定义obj)
1>libcmtd.lib(dbgheap.obj):错误 LNK2005:_aligned_realloc 已在 libcmt.lib(align.obj) 中定义
1>libcmtd.lib(dbgheap.obj):错误 LNK2005:_aligned_recalloc 已在 libcmt.lib( align.obj)
1>libcmtd.lib(dbgheap.obj):错误 LNK2005:_aligned_offset_malloc 已在 libcmt.lib(align.obj) 中定义
1>libcmtd.lib(dbgheap.obj):错误 LNK2005:_aligned_offset_realloc 已在 libcmt 中定义。 lib(align.obj)
1>libcmtd.lib(dbgheap.obj):错误 LNK2005:_aligned_offset_recalloc 已在 libcmt.lib(align.obj) 中定义
1>libcmtd.lib(dbgheap.obj):错误 LNK2005:_aligned_free 已在 libcmt.lib(align.obj) 中定义 1>libcmtd.lib(dbgheap.obj):错误 LNK2005:_aligned_msize 已在 libcmt.lib(align.obj)
中定义obj)
1>libcmtd.lib(dbghook.obj):错误 LNK2005:__crt_debugger_hook 已在 libcmt.lib(dbghook.obj)中定义
1>libcmtd.lib(isctype.obj):错误 LNK2005:_isctype_l 已在 libcmt.lib( isctype.obj)
1>libcmtd.lib(isctype.obj) : 错误 LNK2005: _isctype 已在 libcmt.lib(isctype.obj) 中定义

4

2 回答 2

3

看起来您正在链接到调试运行时以及发布运行时 - 可能您有一个发布版本,该版本静态链接到调试库,反之亦然。

于 2013-03-12T05:47:11.610 回答
1
  • 如果您的应用程序使用任何LIBs 或DLLs,其中任何一个都与运行时程序集静态链接。这就是这个链接错误的原因。
  • 不推荐使用静态喜欢的运行时程序集

  • 但是,如果您需要摆脱这个链接错误,请right-click on project file in project explorer-> properties-> configuration properties-> linker-> Input-> Ignore Specific Library-> 添加libcmtd.lib

于 2013-03-12T05:59:40.803 回答