错误LNK2005:MSVCRT.lib(MSVCR100.dll)中已定义的xxx C:\ something \ LIBCMT.lib(setlocal.obj)


76

我正在使用DCMTK库读取Dicom文件(医学图像处理中使用的图像格式。)在编译此DCMTK源代码时遇到问题。DCMTK使用其他一些外部库(zlib,tiff,libpng,libxml2,libiconv)。我知道所有库都应使用相同的代码生成选项来生成。

我已经下载了这些支持库的编译版本,这些支持库是使用“多线程DLL”运行时选项(/ MD)编译的。在DCMTK源代码的每个项目中,我确保运行时选项为“多线程DLL”(/ MD)。但是仍然出现这些错误:

Error   238 error LNK2005: ___iob_func already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(_file.obj)    dcmp2pgm
Error   239 error LNK2005: __lock_file already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(_file.obj)    dcmp2pgm
Error   240 error LNK2005: __unlock_file already defined in MSVCRT.lib(MSVCR100.dll)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(_file.obj)    dcmp2pgm
Error   241 error LNK2005: __initterm_e already defined in MSVCRT.lib(MSVCR100.dll) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0dat.obj)  dcmp2pgm
Error   242 error LNK2005: _exit already defined in MSVCRT.lib(MSVCR100.dll)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0dat.obj)  dcmp2pgm
Error   243 error LNK2005: __exit already defined in MSVCRT.lib(MSVCR100.dll)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0dat.obj)  dcmp2pgm
Error   244 error LNK2005: __cexit already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0dat.obj)  dcmp2pgm
Error   245 error LNK2005: __amsg_exit already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0dat.obj)  dcmp2pgm
Error   246 error LNK2005: _fflush already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(fflush.obj)   dcmp2pgm
Error   247 error LNK2005: __errno already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(dosmap.obj)   dcmp2pgm
Error   248 error LNK2005: __invoke_watson already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(invarg.obj)   dcmp2pgm
Error   249 error LNK2005: "void __cdecl terminate(void)" (?terminate@@YAXXZ) already defined in MSVCRT.lib(MSVCR100.dll)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(hooks.obj)    dcmp2pgm
Error   250 error LNK2005: ___xi_a already defined in MSVCRT.lib(cinitexe.obj)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0init.obj) dcmp2pgm
Error   251 error LNK2005: ___xi_z already defined in MSVCRT.lib(cinitexe.obj)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0init.obj) dcmp2pgm
Error   252 error LNK2005: ___xc_a already defined in MSVCRT.lib(cinitexe.obj)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0init.obj) dcmp2pgm
Error   253 error LNK2005: ___xc_z already defined in MSVCRT.lib(cinitexe.obj)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0init.obj) dcmp2pgm
Error   254 error LNK2005: __unlock already defined in MSVCRT.lib(MSVCR100.dll) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(mlock.obj)    dcmp2pgm
Error   255 error LNK2005: __lock already defined in MSVCRT.lib(MSVCR100.dll)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(mlock.obj)    dcmp2pgm
Error   256 error LNK2005: __XcptFilter already defined in MSVCRT.lib(MSVCR100.dll) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(winxfltr.obj) dcmp2pgm
Error   257 error LNK2005: _mainCRTStartup already defined in MSVCRT.lib(crtexe.obj)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0.obj) dcmp2pgm
Error   258 error LNK2005: ___set_app_type already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(errmode.obj)  dcmp2pgm
Error   259 error LNK2005: __configthreadlocale already defined in MSVCRT.lib(MSVCR100.dll) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(setlocal.obj) dcmp2pgm
Error   260 error LNK2005: _getenv already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(getenv.obj)   dcmp2pgm
Error   261 error LNK2005: __isctype already defined in MSVCRT.lib(MSVCR100.dll)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(isctype.obj)  dcmp2pgm
Error   262 error LNK2005: __strnicmp already defined in MSVCRT.lib(MSVCR100.dll)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(strnicmp.obj) dcmp2pgm
Error   263 error LNK2005: __close already defined in LIBCMT.lib(close.obj) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmp2pgm
Error   264 error LNK2005: __fileno already defined in LIBCMT.lib(fileno.obj)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmp2pgm
Error   265 error LNK2005: _calloc already defined in LIBCMT.lib(calloc.obj)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmp2pgm
Error   266 error LNK2005: _atol already defined in LIBCMT.lib(atox.obj)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmp2pgm
Error   267 error LNK2005: _strcspn already defined in LIBCMT.lib(strcspn.obj)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmp2pgm
Error   268 error LNK2005: __stricmp already defined in LIBCMT.lib(stricmp.obj) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmp2pgm
Error   269 error LNK2005: _atoi already defined in LIBCMT.lib(atox.obj)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmp2pgm
Error   270 error LNK2005: __lseek already defined in LIBCMT.lib(lseek.obj) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmp2pgm
Error   271 error LNK2005: __read already defined in LIBCMT.lib(read.obj)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmp2pgm
Error   272 error LNK2005: __write already defined in LIBCMT.lib(write.obj) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmp2pgm
Error   273 error LNK2005: __open already defined in LIBCMT.lib(open.obj)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmp2pgm
Error   274 error LNK2005: __get_osfhandle already defined in LIBCMT.lib(osfinfo.obj)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmp2pgm
Error   278 error LNK1169: one or more multiply defined symbols found   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\Release\dcmp2pgm.exe 1   1   dcmp2pgm
Error   201 error LNK2005: ___iob_func already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(_file.obj)    dcmprscp
Error   202 error LNK2005: __lock_file already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(_file.obj)    dcmprscp
Error   203 error LNK2005: __unlock_file already defined in MSVCRT.lib(MSVCR100.dll)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(_file.obj)    dcmprscp
Error   204 error LNK2005: __initterm_e already defined in MSVCRT.lib(MSVCR100.dll) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0dat.obj)  dcmprscp
Error   205 error LNK2005: _exit already defined in MSVCRT.lib(MSVCR100.dll)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0dat.obj)  dcmprscp
Error   206 error LNK2005: __exit already defined in MSVCRT.lib(MSVCR100.dll)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0dat.obj)  dcmprscp
Error   207 error LNK2005: __cexit already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0dat.obj)  dcmprscp
Error   208 error LNK2005: __amsg_exit already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0dat.obj)  dcmprscp
Error   209 error LNK2005: _fflush already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(fflush.obj)   dcmprscp
Error   210 error LNK2005: __errno already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(dosmap.obj)   dcmprscp
Error   211 error LNK2005: __invoke_watson already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(invarg.obj)   dcmprscp
Error   212 error LNK2005: "void __cdecl terminate(void)" (?terminate@@YAXXZ) already defined in MSVCRT.lib(MSVCR100.dll)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(hooks.obj)    dcmprscp
Error   213 error LNK2005: ___xi_a already defined in MSVCRT.lib(cinitexe.obj)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0init.obj) dcmprscp
Error   214 error LNK2005: ___xi_z already defined in MSVCRT.lib(cinitexe.obj)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0init.obj) dcmprscp
Error   215 error LNK2005: ___xc_a already defined in MSVCRT.lib(cinitexe.obj)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0init.obj) dcmprscp
Error   216 error LNK2005: ___xc_z already defined in MSVCRT.lib(cinitexe.obj)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0init.obj) dcmprscp
Error   217 error LNK2005: __unlock already defined in MSVCRT.lib(MSVCR100.dll) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(mlock.obj)    dcmprscp
Error   218 error LNK2005: __lock already defined in MSVCRT.lib(MSVCR100.dll)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(mlock.obj)    dcmprscp
Error   219 error LNK2005: __XcptFilter already defined in MSVCRT.lib(MSVCR100.dll) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(winxfltr.obj) dcmprscp
Error   220 error LNK2005: __stricmp already defined in MSVCRT.lib(MSVCR100.dll)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(stricmp.obj)  dcmprscp
Error   221 error LNK2005: _mainCRTStartup already defined in MSVCRT.lib(crtexe.obj)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0.obj) dcmprscp
Error   222 error LNK2005: ___set_app_type already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(errmode.obj)  dcmprscp
Error   223 error LNK2005: __configthreadlocale already defined in MSVCRT.lib(MSVCR100.dll) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(setlocal.obj) dcmprscp
Error   224 error LNK2005: _getenv already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(getenv.obj)   dcmprscp
Error   225 error LNK2005: __isctype already defined in MSVCRT.lib(MSVCR100.dll)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(isctype.obj)  dcmprscp
Error   226 error LNK2005: __strnicmp already defined in MSVCRT.lib(MSVCR100.dll)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(strnicmp.obj) dcmprscp
Error   227 error LNK2005: __close already defined in LIBCMT.lib(close.obj) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmprscp
Error   228 error LNK2005: __fileno already defined in LIBCMT.lib(fileno.obj)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmprscp
Error   229 error LNK2005: __lseek already defined in LIBCMT.lib(lseek.obj) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmprscp
Error   230 error LNK2005: __read already defined in LIBCMT.lib(read.obj)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmprscp
Error   231 error LNK2005: __write already defined in LIBCMT.lib(write.obj) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmprscp
Error   232 error LNK2005: __open already defined in LIBCMT.lib(open.obj)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmprscp
Error   233 error LNK2005: __get_osfhandle already defined in LIBCMT.lib(osfinfo.obj)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmprscp
Error   237 error LNK1169: one or more multiply defined symbols found   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\Release\dcmprscp.exe 1   1   dcmprscp
Error   160 error LNK2005: ___iob_func already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(_file.obj)    dcmprscu
Error   161 error LNK2005: __lock_file already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(_file.obj)    dcmprscu
Error   162 error LNK2005: __unlock_file already defined in MSVCRT.lib(MSVCR100.dll)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(_file.obj)    dcmprscu
Error   163 error LNK2005: __initterm_e already defined in MSVCRT.lib(MSVCR100.dll) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0dat.obj)  dcmprscu
Error   164 error LNK2005: _exit already defined in MSVCRT.lib(MSVCR100.dll)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0dat.obj)  dcmprscu
Error   165 error LNK2005: __exit already defined in MSVCRT.lib(MSVCR100.dll)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0dat.obj)  dcmprscu
Error   166 error LNK2005: __cexit already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0dat.obj)  dcmprscu
Error   167 error LNK2005: __amsg_exit already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0dat.obj)  dcmprscu
Error   168 error LNK2005: _fflush already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(fflush.obj)   dcmprscu
Error   169 error LNK2005: __errno already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(dosmap.obj)   dcmprscu
Error   170 error LNK2005: __invoke_watson already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(invarg.obj)   dcmprscu
Error   171 error LNK2005: "void __cdecl terminate(void)" (?terminate@@YAXXZ) already defined in MSVCRT.lib(MSVCR100.dll)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(hooks.obj)    dcmprscu
Error   172 error LNK2005: ___xi_a already defined in MSVCRT.lib(cinitexe.obj)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0init.obj) dcmprscu
Error   173 error LNK2005: ___xi_z already defined in MSVCRT.lib(cinitexe.obj)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0init.obj) dcmprscu
Error   174 error LNK2005: ___xc_a already defined in MSVCRT.lib(cinitexe.obj)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0init.obj) dcmprscu
Error   175 error LNK2005: ___xc_z already defined in MSVCRT.lib(cinitexe.obj)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0init.obj) dcmprscu
Error   176 error LNK2005: __unlock already defined in MSVCRT.lib(MSVCR100.dll) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(mlock.obj)    dcmprscu
Error   177 error LNK2005: __lock already defined in MSVCRT.lib(MSVCR100.dll)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(mlock.obj)    dcmprscu
Error   178 error LNK2005: __XcptFilter already defined in MSVCRT.lib(MSVCR100.dll) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(winxfltr.obj) dcmprscu
Error   179 error LNK2005: _mainCRTStartup already defined in MSVCRT.lib(crtexe.obj)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0.obj) dcmprscu
Error   180 error LNK2005: ___set_app_type already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(errmode.obj)  dcmprscu
Error   181 error LNK2005: __configthreadlocale already defined in MSVCRT.lib(MSVCR100.dll) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(setlocal.obj) dcmprscu
Error   182 error LNK2005: _getenv already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(getenv.obj)   dcmprscu
Error   183 error LNK2005: __isctype already defined in MSVCRT.lib(MSVCR100.dll)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(isctype.obj)  dcmprscu
Error   184 error LNK2005: __strnicmp already defined in MSVCRT.lib(MSVCR100.dll)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(strnicmp.obj) dcmprscu
Error   185 error LNK2005: __close already defined in LIBCMT.lib(close.obj) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmprscu
Error   186 error LNK2005: __fileno already defined in LIBCMT.lib(fileno.obj)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmprscu
Error   187 error LNK2005: _calloc already defined in LIBCMT.lib(calloc.obj)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmprscu
Error   188 error LNK2005: _atol already defined in LIBCMT.lib(atox.obj)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmprscu
Error   189 error LNK2005: _strcspn already defined in LIBCMT.lib(strcspn.obj)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmprscu
Error   190 error LNK2005: __stricmp already defined in LIBCMT.lib(stricmp.obj) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmprscu
Error   191 error LNK2005: _atoi already defined in LIBCMT.lib(atox.obj)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmprscu
Error   192 error LNK2005: __lseek already defined in LIBCMT.lib(lseek.obj) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmprscu
Error   193 error LNK2005: __read already defined in LIBCMT.lib(read.obj)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmprscu
Error   194 error LNK2005: __write already defined in LIBCMT.lib(write.obj) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmprscu
Error   195 error LNK2005: __open already defined in LIBCMT.lib(open.obj)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmprscu
Error   196 error LNK2005: __get_osfhandle already defined in LIBCMT.lib(osfinfo.obj)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmprscu
Error   200 error LNK1169: one or more multiply defined symbols found   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\Release\dcmprscu.exe dcmprscu
Error   119 error LNK2005: ___iob_func already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(_file.obj)    dcmpsprt
Error   120 error LNK2005: __lock_file already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(_file.obj)    dcmpsprt
Error   121 error LNK2005: __unlock_file already defined in MSVCRT.lib(MSVCR100.dll)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(_file.obj)    dcmpsprt
Error   122 error LNK2005: __initterm_e already defined in MSVCRT.lib(MSVCR100.dll) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0dat.obj)  dcmpsprt
Error   123 error LNK2005: _exit already defined in MSVCRT.lib(MSVCR100.dll)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0dat.obj)  dcmpsprt
Error   124 error LNK2005: __exit already defined in MSVCRT.lib(MSVCR100.dll)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0dat.obj)  dcmpsprt
Error   125 error LNK2005: __cexit already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0dat.obj)  dcmpsprt
Error   126 error LNK2005: __amsg_exit already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0dat.obj)  dcmpsprt
Error   127 error LNK2005: _fflush already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(fflush.obj)   dcmpsprt
Error   128 error LNK2005: __errno already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(dosmap.obj)   dcmpsprt
Error   129 error LNK2005: __invoke_watson already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(invarg.obj)   dcmpsprt
Error   130 error LNK2005: "void __cdecl terminate(void)" (?terminate@@YAXXZ) already defined in MSVCRT.lib(MSVCR100.dll)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(hooks.obj)    dcmpsprt
Error   131 error LNK2005: ___xi_a already defined in MSVCRT.lib(cinitexe.obj)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0init.obj) dcmpsprt
Error   132 error LNK2005: ___xi_z already defined in MSVCRT.lib(cinitexe.obj)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0init.obj) dcmpsprt
Error   133 error LNK2005: ___xc_a already defined in MSVCRT.lib(cinitexe.obj)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0init.obj) dcmpsprt
Error   134 error LNK2005: ___xc_z already defined in MSVCRT.lib(cinitexe.obj)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0init.obj) dcmpsprt
Error   135 error LNK2005: __unlock already defined in MSVCRT.lib(MSVCR100.dll) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(mlock.obj)    dcmpsprt
Error   136 error LNK2005: __lock already defined in MSVCRT.lib(MSVCR100.dll)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(mlock.obj)    dcmpsprt
Error   137 error LNK2005: __XcptFilter already defined in MSVCRT.lib(MSVCR100.dll) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(winxfltr.obj) dcmpsprt
Error   138 error LNK2005: _mainCRTStartup already defined in MSVCRT.lib(crtexe.obj)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(crt0.obj) dcmpsprt
Error   139 error LNK2005: ___set_app_type already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(errmode.obj)  dcmpsprt
Error   140 error LNK2005: __configthreadlocale already defined in MSVCRT.lib(MSVCR100.dll) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(setlocal.obj) dcmpsprt
Error   141 error LNK2005: _getenv already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(getenv.obj)   dcmpsprt
Error   142 error LNK2005: __isctype already defined in MSVCRT.lib(MSVCR100.dll)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(isctype.obj)  dcmpsprt
Error   143 error LNK2005: __strnicmp already defined in MSVCRT.lib(MSVCR100.dll)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\LIBCMT.lib(strnicmp.obj) dcmpsprt
Error   144 error LNK2005: __close already defined in LIBCMT.lib(close.obj) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmpsprt
Error   145 error LNK2005: __fileno already defined in LIBCMT.lib(fileno.obj)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmpsprt
Error   146 error LNK2005: _calloc already defined in LIBCMT.lib(calloc.obj)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmpsprt
Error   147 error LNK2005: _atol already defined in LIBCMT.lib(atox.obj)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmpsprt
Error   148 error LNK2005: _strcspn already defined in LIBCMT.lib(strcspn.obj)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmpsprt
Error   149 error LNK2005: __stricmp already defined in LIBCMT.lib(stricmp.obj) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmpsprt
Error   150 error LNK2005: _atoi already defined in LIBCMT.lib(atox.obj)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmpsprt
Error   151 error LNK2005: __lseek already defined in LIBCMT.lib(lseek.obj) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmpsprt
Error   152 error LNK2005: __read already defined in LIBCMT.lib(read.obj)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmpsprt
Error   153 error LNK2005: __write already defined in LIBCMT.lib(write.obj) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmpsprt
Error   154 error LNK2005: __open already defined in LIBCMT.lib(open.obj)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmpsprt
Error   155 error LNK2005: __get_osfhandle already defined in LIBCMT.lib(osfinfo.obj)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\MSVCRT.lib(MSVCR100.dll) dcmpsprt
Error   159 error LNK1169: one or more multiply defined symbols found   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmpstat\apps\Release\dcmpsprt.exe 1   1   dcmpsprt
Error   61  error LNK2005: ___iob_func already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmsr\apps\LIBCMT.lib(_file.obj)   dsr2html
Error   62  error LNK2005: __lock_file already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmsr\apps\LIBCMT.lib(_file.obj)   dsr2html
Error   63  error LNK2005: __unlock_file already defined in MSVCRT.lib(MSVCR100.dll)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmsr\apps\LIBCMT.lib(_file.obj)   dsr2html
Error   64  error LNK2005: __initterm_e already defined in MSVCRT.lib(MSVCR100.dll) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmsr\apps\LIBCMT.lib(crt0dat.obj) dsr2html
Error   65  error LNK2005: _exit already defined in MSVCRT.lib(MSVCR100.dll)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmsr\apps\LIBCMT.lib(crt0dat.obj) dsr2html
Error   66  error LNK2005: __exit already defined in MSVCRT.lib(MSVCR100.dll)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmsr\apps\LIBCMT.lib(crt0dat.obj) dsr2html
Error   67  error LNK2005: __cexit already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmsr\apps\LIBCMT.lib(crt0dat.obj) dsr2html
Error   68  error LNK2005: __amsg_exit already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmsr\apps\LIBCMT.lib(crt0dat.obj) dsr2html
Error   69  error LNK2005: _fflush already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmsr\apps\LIBCMT.lib(fflush.obj)  dsr2html
Error   70  error LNK2005: __errno already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmsr\apps\LIBCMT.lib(dosmap.obj)  dsr2html
Error   71  error LNK2005: __invoke_watson already defined in MSVCRT.lib(MSVCR100.dll)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmsr\apps\LIBCMT.lib(invarg.obj)  dsr2html
Error   72  error LNK2005: "void __cdecl terminate(void)" (?terminate@@YAXXZ) already defined in MSVCRT.lib(MSVCR100.dll)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmsr\apps\LIBCMT.lib(hooks.obj)   dsr2html
Error   73  error LNK2005: ___xi_a already defined in MSVCRT.lib(cinitexe.obj)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmsr\apps\LIBCMT.lib(crt0init.obj)    dsr2html
Error   74  error LNK2005: ___xi_z already defined in MSVCRT.lib(cinitexe.obj)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmsr\apps\LIBCMT.lib(crt0init.obj)    dsr2html
Error   75  error LNK2005: ___xc_a already defined in MSVCRT.lib(cinitexe.obj)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmsr\apps\LIBCMT.lib(crt0init.obj)    dsr2html
Error   76  error LNK2005: ___xc_z already defined in MSVCRT.lib(cinitexe.obj)  C:\dcmtk-3.5.4-src\CMakeBinaries\dcmsr\apps\LIBCMT.lib(crt0init.obj)    dsr2html
Error   77  error LNK2005: __unlock already defined in MSVCRT.lib(MSVCR100.dll) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmsr\apps\LIBCMT.lib(mlock.obj)   dsr2html
Error   78  error LNK2005: __lock already defined in MSVCRT.lib(MSVCR100.dll)   C:\dcmtk-3.5.4-src\CMakeBinaries\dcmsr\apps\LIBCMT.lib(mlock.obj)   dsr2html
Error   79  error LNK2005: __XcptFilter already defined in MSVCRT.lib(MSVCR100.dll) C:\dcmtk-3.5.4-src\CMakeBinaries\dcmsr\apps\LIBCMT.lib(winxfltr.obj)    dsr2html
Error   80  error LNK2005: _mainCRTStartup already defined in MSVCRT.lib(crtexe.obj)    C:\dcmtk-3.5.4-src\CMakeBinaries\dcmsr\apps\LIBCMT.lib(crt0.obj)    dsr2html
Error   81  error LNK2005: ___set_app_type already defined in 

编辑:

观察结果:

  1. 仅LIBCMT.LIB和MSVCRT.LIB之间存在冲突
  2. 这两个LIB文件在错误所示的位置不存在。

编辑2:

是的,问题是因为某些支持库不是使用/ MD构建的。因此,我自己使用/ MD构建了所有支持库,而我的问题得以解决。

Answers:


121

您正在混合使用/ MD(使用CRT的DLL版本)编译的代码和使用/ MT(使用静态CRT库)编译的代码。那行不通,必须使用相同的设置来编译所有源代码文件。假设您使用的是/ MD预编译的库,几乎总是正确的设置,那么您也必须使用此设置编译自己的代码。

项目+属性,C / C ++,代码生成,运行时库。

请注意,这些库可能是使用CRT的早期版本进行编译的,msvcr100.dll相当新。不知道这是否会引起麻烦,您可能必须阻止链接程序生成清单。您还必须确保将所需的DLL部署到目标计算机,包括msvcr100.dll。


1
我想您在我的问题中没有提到这一点:In each project of DCMTK solution (source code) I ensured that runtime options are "Multithreaded DLL" (/MD). But still I'm getting these errors.在DCMTK解决方案中(大约有62个项目)。对于每个项目,我都检查了“项目+属性”,“ C / C ++”,“代码生成”,“运行时库”设置,它是/ MD。即使在此之后,我仍然收到此错误。
volpack 2010年

2
链接器正在争论您的声明,而不是我。当心使用错误编译的.lib本身的“ dcmtk”项目之一。
汉斯·帕桑特

1
我已经编辑了我的问题。您对我编辑中的第二点有什么评论吗?
volpack 2010年

1
好吧,错误消息中LIBCMT的位置非常奇怪,它不属于该位置。我唯一的好猜测是,链接器实际上是在获取lib的预构建版本,而不是您自己重建的版本。
汉斯·帕桑特

1
“库的预构建版本,而不是您自己重建的库。” 我没有构建任何LIBCMT / MSVCRT,而且重要的是在上述任何位置都没有LIBCMT.LIB或MSVCRT.LIB。
volpack 2010年

3

收到此错误后,我更改了

c/C++ > Code Generation > Runtime Library to Multi-threaded library (DLL) /MD

适用于代码项目和关联的Google Test项目。这解决了问题。

注意:项目的所有组件必须在c / C ++>代码生成>运行时库中具有相同的定义。DLL或不是DLL,但相同。


2

一些读者将有另一个问题,需要此修复程序。阅读下面的链接。随着Windows SDK 10的出现,Visual Studio 2015出现了相同的问题,这带来了libucrt。ucrt是C运行时(CRT)的Windows实现,又名posix运行时库。您很可能具有从unix移植的代码。

https://support.microsoft.com/zh-CN/help/148652/a-lnk2005-error-occurs-when-the-crt-library-and-mfc-libraries-are-linked-in-the-wrong-视觉订购

https://github.com/lordmulder/libsndfile-MSVC/blob/master/src/sf_unistd.h

https://lists.gnu.org/archive/html/bug-gnulib/2011-09/msg00224.html

https://msdn.microsoft.com/zh-CN/library/y23kc048.aspx

https://blogs.msdn.microsoft.com/vcblog/2015/03/03/introducing-the-universal-crt/


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.