Когато използвам флага /MT с ICC 14, получавам следните грешки:
1> xilink: executing 'link'
1>MSVCRT.lib(MSVCR120.dll) : error LNK2005: isspace already defined in LIBCMT.lib(_ctype.obj)
1>MSVCRT.lib(MSVCR120.dll) : error LNK2005: __iob_func already defined in LIBCMT.lib(_file.obj)
1>MSVCRT.lib(MSVCR120.dll) : error LNK2005: fprintf already defined in LIBCMT.lib(fprintf.obj)
1>MSVCRT.lib(MSVCR120.dll) : error LNK2005: abort already defined in LIBCMT.lib(abort.obj)
1>MSVCRT.lib(MSVCR120.dll) : error LNK2005: free already defined in LIBCMT.lib(free.obj)
1>MSVCRT.lib(MSVCR120.dll) : error LNK2005: malloc already defined in LIBCMT.lib(malloc.obj)
1>MSVCRT.lib(MSVCR120.dll) : error LNK2005: realloc already defined in LIBCMT.lib(realloc.obj)
1>MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: __cdecl type_info::type_info(class type_info const &)" (??0type_info@@AEAA@AEBV0@@Z) already defined in LIBCMT.lib(typinfo.obj)
1>MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __cdecl type_info::operator=(class type_info const &)" (??4type_info@@AEAAAEAV0@AEBV0@@Z) already defined in LIBCMT.lib(typinfo.obj)
1>LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>D:\forgottenserver-master\vc12\x64\Release\theforgottenserver.exe : fatal error LNK1169: one or more multiply defined symbols found
Нямам представа какво причинява това и когато използвам флага /MD, всичко работи добре
Използвам ICC версия 14 с MSVC 2013 ultimate и компилирам програма за x64 с boost (компилирах тези файлове за платформата iw сам и изглежда, че работят)
use /nodefaultlib:MSVCRT
? - person Jonas Bötel   schedule 29.06.2014/nodefaultlib:msvcrt
. Ако получавате грешките, които описвате, това означава, че някои обекти във вашия линкер са били компилирани с/MT
, а други са били компилирани с/MD
. Не можете да смесвате и съчетавате; всички изходни файлове трябва да бъдат компилирани с една и съща опция. - person James McNellis   schedule 29.06.2014