致命错误LNK1169

时间:2013-03-12 05:37:25

标签: c++ fortran linker-errors fortran77

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

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

  

1> libcmtd.lib(dbgheap.obj):错误LNK2005:已在libcmt.lib(malloc.obj)中定义malloc
  1> libcmtd.lib(dbgheap.obj):错误LNK2005:_heap_alloc已在libcmt.lib(malloc.obj)中定义
  1> libcmtd.lib(dbgheap.obj):错误LNK2005:已在libcmt.lib中定义的calloc(calloc.obj)
  1> libcmtd.lib(dbgheap.obj):错误LNK2005:已在libcmt.lib中定义的realloc(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):错误LNK2005:已在libcmt.lib(free.obj)中定义了free   1> libcmtd.lib(dbgheap.obj):错误LNK2005:_msize已在libcmt.lib中定义(msize.obj)
  1> libcmtd.lib(dbgheap.obj):错误LNK2005:_aligned_malloc已在libcmt.lib中定义(align.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)
  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)

2 个答案:

答案 0 :(得分:3)

看起来您正在链接到Debug运行时以及Release运行时 - 可能您有一个Release构建,它静态链接到Debug lib,反之亦然。

答案 1 :(得分:1)

  • 如果您的应用程序使用任何LIBDLL,则其中任何一个都与运行时程序集静态链接。这就是造成这种链接错误的原因。
  • 静态喜欢的运行时程序集不是推荐的方法

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