今天在編譯vc工程時出現的錯誤,并在網上找到了解決方法,有類似問題的請參照
本人在編譯VC6.0工程時,遇到如下錯誤:
MSVCRTD.lib(MSVCRTD.dll) ? : ? error ? LNK2005: ? _getenv ? already ? defined ? in ? LIBCMTD.lib(getenv.obj)
MSVCRTD.lib(MSVCRTD.dll) ? : ? error ? LNK2005: ? _free ? already ? defined ? in ? LIBCMTD.lib(dbgheap.obj)
MSVCRTD.lib(MSVCRTD.dll) ? : ? error ? LNK2005: ? _calloc ? already ? defined ? in ? LIBCMTD.lib(dbgheap.obj)
MSVCRTD.lib(MSVCRTD.dll) ? : ? error ? LNK2005: ? _malloc ? already ? defined ? in ? LIBCMTD.lib(dbgheap.obj)
MSVCRTD.lib(MSVCRTD.dll) ? : ? error ? LNK2005: ? _printf ? already ? defined ? in ? xlibgui.lib(PRINTF.OBJ)
MSVCRTD.lib(MSVCRTD.dll) ? : ? error ? LNK2005: ? _fflush ? already ? defined ? in ? LIBCMTD.lib(fflush.obj)
MSVCRTD.lib(MSVCRTD.dll) ? : ? error ? LNK2005: ? _sprintf ? already ? defined ? in ? LIBCMTD.lib(sprintf.obj)
MSVCRTD.lib(MSVCRTD.dll) ? : ? error ? LNK2005: ? _strncpy ? already ? defined ? in ? LIBCMTD.lib(strncpy.obj)
MSVCRTD.lib(MSVCRTD.dll) ? : ? error ? LNK2005: ? _atoi ? already ? defined ? in ? LIBCMTD.lib(atox.obj)
MSVCRTD.lib(MSVCRTD.dll) ? : ? error ? LNK2005: ? _realloc ? already ? defined ? in ? LIBCMTD.lib(dbgheap.obj)
MSVCRTD.lib(MSVCRTD.dll) ? : ? error ? LNK2005: ? _signal ? already ? defined ? in ? LIBCMTD.lib(winsig.obj)
MSVCRTD.lib(MSVCRTD.dll) ? : ? error ? LNK2005: ? __controlfp ? already ? defined ? in ? LIBCMTD.lib(ieee87.obj)
MSVCRTD.lib(MSVCRTD.dll) ? : ? error ? LNK2005: ? _exit ? already ? defined ? in ? LIBCMTD.lib(crt0dat.obj)
MSVCRTD.lib(MSVCRTD.dll) ? : ? warning ? LNK4006: ? _getenv ? already ? defined ? in ? LIBCMTD.lib(getenv.obj); ? second ? definition ? ignored
MSVCRTD.lib(MSVCRTD.dll) ? : ? warning ? LNK4006: ? _free ? already ? defined ? in ? LIBCMTD.lib(dbgheap.obj); ? second ? definition ? ignored
MSVCRTD.lib(MSVCRTD.dll) ? : ? warning ? LNK4006: ? _calloc ? already ? defined ? in ? LIBCMTD.lib(dbgheap.obj); ? second ? definition ? ignored
MSVCRTD.lib(MSVCRTD.dll) ? : ? warning ? LNK4006: ? _malloc ? already ? defined ? in ? LIBCMTD.lib(dbgheap.obj); ? second ? definition ? ignored
MSVCRTD.lib(MSVCRTD.dll) ? : ? warning ? LNK4006: ? _printf ? already ? defined ? in ? xlibgui.lib(PRINTF.OBJ); ? second ? definition ? ignored
MSVCRTD.lib(MSVCRTD.dll) ? : ? warning ? LNK4006: ? _fflush ? already ? defined ? in ? LIBCMTD.lib(fflush.obj); ? second ? definition ? ignored
MSVCRTD.lib(MSVCRTD.dll) ? : ? warning ? LNK4006: ? _sprintf ? already ? defined ? in ? LIBCMTD.lib(sprintf.obj); ? second ? definition ? ignored
MSVCRTD.lib(MSVCRTD.dll) ? : ? warning ? LNK4006: ? _strncpy ? already ? defined ? in ? LIBCMTD.lib(strncpy.obj); ? second ? definition ? ignored
MSVCRTD.lib(MSVCRTD.dll) ? : ? warning ? LNK4006: ? _atoi ? already ? defined ? in ? LIBCMTD.lib(atox.obj); ? second ? definition ? ignored
MSVCRTD.lib(MSVCRTD.dll) ? : ? warning ? LNK4006: ? _realloc ? already ? defined ? in ? LIBCMTD.lib(dbgheap.obj); ? second ? definition ? ignored
MSVCRTD.lib(MSVCRTD.dll) ? : ? warning ? LNK4006: ? _signal ? already ? defined ? in ? LIBCMTD.lib(winsig.obj); ? second ? definition ? ignored
MSVCRTD.lib(MSVCRTD.dll) ? : ? warning ? LNK4006: ? __controlfp ? already ? defined ? in ? LIBCMTD.lib(ieee87.obj); ? second ? definition ? ignored
MSVCRTD.lib(MSVCRTD.dll) ? : ? warning ? LNK4006: ? _exit ? already ? defined ? in ? LIBCMTD.lib(crt0dat.obj); ? second ? definition ? ignored
MSVCRTD.lib(MSVCRTD.dll) ? : ? warning ? LNK4006: ? _fclose ? already ? defined ? in ? LIBCMTD.lib(fclose.obj); ? second ? definition ? ignored
MSVCRTD.lib(MSVCRTD.dll) ? : ? warning ? LNK4006: ? _fopen ? already ? defined ? in ? LIBCMTD.lib(fopen.obj); ? second ? definition ? ignored
MSVCRTD.lib(MSVCRTD.dll) ? : ? warning ? LNK4006: ? __stricmp ? already ? defined ? in ? LIBCMTD.lib(stricmp.obj); ? second ? definition ? ignored
MSVCRTD.lib(MSVCRTD.dll) ? : ? warning ? LNK4006: ? _fprintf ? already ? defined ? in ? LIBCMTD.lib(fprintf.obj); ? second ? definition ? ignored
MSVCRTD.lib(MSVCRTD.dll) ? : ? warning ? LNK4006: ? _ceil ? already ? defined ? in ? LIBCMTD.lib(ceil.obj); ? second ? definition ? ignored
? ? ? Creating ? library ? Debug/shm_ext_sim.lib ? and ? object ? Debug/shm_ext_sim.exp
LINK ? : ? warning ? LNK4098: ? defaultlib ? "MSVCRTD" ? conflicts ? with ? use ? of ? other ? libs; ? use ? /NODEFAULTLIB:library
LINK ? : ? warning ? LNK4098: ? defaultlib ? "MSVCRT" ? conflicts ? with ? use ? of ? other ? libs; ? use ? /NODEFAULTLIB:library
Debug/shm_ext_sim.exe ? : ? fatal ? error ? LNK1169: ? one ? or ? more ? multiply ? defined ? symbols ? found
Error ? executing ? link.exe.
shm_ext_sim.exe ? - ? 37 ? error(s), ? 86 ? warning(s)
?
?
原因及解決方法:
主程序和lib所使用的運行庫不一致,project->setting-> Generation->Use MFC Static Library
網友:本站網友 | 時間:2006-08-27 14:24:11 IP地址:202.194.210.★ |
|
|
| For example, if you received this warning and you want to create an executable file that uses the non-debug, single-threaded version of the run-time libraries, you could use the following options with the linker:
/NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib
或者這樣:For example, if you received this warning and you want to create an executable file that uses the non-debug, single-threaded version of the run-time libraries, you could use the following options with the linker:
/NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB寫程序看到 warning,感覺不爽。 這個警告在 link option 中 加入 對應的 /NODEFAULTLIB:xxx.lib 就ok了
|
|