Wed, 04/16/2014 - 16:25
Hello,
I'm getting errors when linking TKAdvTools.dll :
[ 6%] Built target TKernel
[ 9%] Built target TKMath
Linking CXX shared library ..\..\..\out\bin\TKAdvTools.dll
LIBCMT.lib(invarg.obj) : error LNK2005: _invalid_parameter already defined in MSVCRTD.lib(MSVCR110D.dll)
LIBCMT.lib(_file.obj) : error LNK2005: __iob_func already defined in MSVCRTD.lib(MSVCR110D.dll)
LIBCMT.lib(_file.obj) : error LNK2005: _lock_file already defined in MSVCRTD.lib(MSVCR110D.dll)
LIBCMT.lib(_file.obj) : error LNK2005: _unlock_file already defined in MSVCRTD.lib(MSVCR110D.dll)
LIBCMT.lib(mlock.obj) : error LNK2005: _lock already defined in MSVCRTD.lib(MSVCR110D.dll)
LIBCMT.lib(mlock.obj) : error LNK2005: _unlock already defined in MSVCRTD.lib(MSVCR110D.dll)
LIBCMT.lib(crt0dat.obj) : error LNK2005: _amsg_exit already defined in MSVCRTD.lib(MSVCR110D.dll)
LIBCMT.lib(crt0dat.obj) : error LNK2005: _initterm_e already defined in MSVCRTD.lib(MSVCR110D.dll)
LIBCMT.lib(crt0dat.obj) : error LNK2005: exit already defined in MSVCRTD.lib(MSVCR110D.dll)
LIBCMT.lib(winapisupp.obj) : error LNK2005: __crtCaptureCurrentContext already defined in MSVCRTD.lib(MSVCR110D.dll)
LIBCMT.lib(winapisupp.obj) : error LNK2005: __crtCapturePreviousContext already defined in MSVCRTD.lib(MSVCR110D.dll)
LIBCMT.lib(winapisupp.obj) : error LNK2005: __crtTerminateProcess already defined in MSVCRTD.lib(MSVCR110D.dll)
LIBCMT.lib(winapisupp.obj) : error LNK2005: __crtUnhandledException already defined in MSVCRTD.lib(MSVCR110D.dll)
LIBCMT.lib(winxfltr.obj) : error LNK2005: __CppXcptFilter already defined in MSVCRTD.lib(MSVCR110D.dll)
LIBCMT.lib(fflush.obj) : error LNK2005: fflush already defined in MSVCRTD.lib(MSVCR110D.dll)
LIBCMT.lib(hooks.obj) : error LNK2005: "void __cdecl terminate(void)" (?terminate@@YAXXZ) already defined in MSVCRTD.lib(MSVCR110D.dll)
LIBCMT.lib(crt0init.obj) : error LNK2005: __xi_a already defined in MSVCRTD.lib(cinitexe.obj)
LIBCMT.lib(crt0init.obj) : error LNK2005: __xi_z already defined in MSVCRTD.lib(cinitexe.obj)
LIBCMT.lib(crt0init.obj) : error LNK2005: __xc_a already defined in MSVCRTD.lib(cinitexe.obj)
LIBCMT.lib(crt0init.obj) : error LNK2005: __xc_z already defined in MSVCRTD.lib(cinitexe.obj)
LINK : warning LNK4098: conflict between default library 'MSVCRTD' and other libraries use /NODEFAULTLIB:library
LINK : warning LNK4098: conflict between default library 'LIBCMT' and other libraries use /NODEFAULTLIB:library
OS : Win7 Pro with last updates installed
OCC version : v6.7.0 with 3rdparty libraries for vc2012_x64 from "Download Center"
C++ compiler : Visual C++ 2012 x64 express edition
cmake version : 2.8.12.2
Any idea how to solve these errors ?
Wed, 04/16/2014 - 18:55
Hello,
See http://msdn.microsoft.com/en-us/library/abx4dbyh.aspx
You are mixing objects compiled with /MT and /MDd, this is not supported.
Thu, 04/17/2014 - 13:09
Thanks you Denis for your help,
These errors happen when building OCC in "Debug" configuration, I get no error with the "Release" configuration.
Within cmake-gui I leave untouched the compiler and linker flags, don't know where this /MT /MDd conflict comes from.