0

我正在尝试在 Visual Studio 2010 中编译我的 c++ 项目,该项目在过去几个月中一直在调试模式下运行良好。我已经完成了它的开发,所以我想创建一个 exe 来发布。

问题是当我将它切换到我不确定如何调试的发布模式时,我收到一堆编译器错误。

任何帮助,将不胜感激:

1>main.obj : error LNK2005: "int __cdecl initKinect(void)" (?initKinect@@YAHXZ) already defined in gui.obj
1>main.obj : error LNK2005: _main already defined in gui.obj
1>Kinect.lib(Kinect-win32.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in algorithm.obj
1>Kinect.lib(Kinect-win32.obj) : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/OPT:ICF' specification
1>Kinect.lib(Kinect-Driver.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in algorithm.obj
1>Kinect.lib(Kinect-FrameInput.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in algorithm.obj
1>libcpmtd.lib(stdthrow.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in algorithm.obj
1>LIBCMTD.lib(dbgheap.obj) : error LNK2005: __heap_alloc already defined in LIBCMT.lib(malloc.obj)
1>LIBCMTD.lib(dbgheap.obj) : error LNK2005: __recalloc already defined in LIBCMT.lib(recalloc.obj)
1>LIBCMTD.lib(dbgheap.obj) : error LNK2005: __msize already defined in LIBCMT.lib(msize.obj)
1>LIBCMTD.lib(dbghook.obj) : error LNK2005: __crt_debugger_hook already defined in LIBCMT.lib(dbghook.obj)
1>LIBCMTD.lib(isctype.obj) : error LNK2005: __isctype_l already defined in LIBCMT.lib(isctype.obj)
1>LIBCMTD.lib(isctype.obj) : error LNK2005: __isctype already defined in LIBCMT.lib(isctype.obj)
1>LINK : warning LNK4098: defaultlib 'LIBCMTD' conflicts with use of other libs; use /NODEFAULTLIB:library
1>C:\Users\Tom\Documents\Kinect\repository\KinectTracker\Release\KinectTracker.exe : fatal error LNK1169: one or more multiply defined symbols found
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
4

1 回答 1

0

在我看来,这就像您正在链接两组库(除了可能的其他问题)。Libcmtd 是 libc 的多线程调试版本,而 libcmt 是同一事物的发布版本。

于 2012-04-26T18:48:16.683 回答