Linker Errors when Building on Win64 - Problem with yaml-cpp and OIIO
Hello, i am experiencing issues when building OCIO on several windows machines and several build configs. I tried building from scratch, with vcpkg and also as part of the OpenRV build script, which uses OCIO as an dependency.
The usual error message tells of a Linker missmatch connected to yaml-cpp. I have little to no experience with CMAKE, but at least some of the errors seem to point towards multiple instances of the yaml-cpp lib being linked.
The main culprit could be oiio, since I have not been able to build any OIIO version >= 2.1. If I should move this issue to that repo, please tell.
Thanks for any help.
Console output:
Imath-3_1.lib(half.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value ' 2' in CategoryHelpers.obj [C:\Users\samue\Source\OpenColorIO\build\src\OpenColorIO\OpenColorIO.vcxproj] Imath-3_1.lib(half.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't matc h value 'MDd_DynamicDebug' in CategoryHelpers.obj [C:\Users\samue\Source\OpenColorIO\build\src\OpenColorIO\OpenColorIO. vcxproj] pystring.lib(pystring.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match valu e '2' in CategoryHelpers.obj [C:\Users\samue\Source\OpenColorIO\build\src\OpenColorIO\OpenColorIO.vcxproj] pystring.lib(pystring.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't m atch value 'MDd_DynamicDebug' in CategoryHelpers.obj [C:\Users\samue\Source\OpenColorIO\build\src\OpenColorIO\OpenColor IO.vcxproj] yaml-cpp.lib(convert.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in CategoryHelpers.obj [C:\Users\samue\Source\OpenColorIO\build\src\OpenColorIO\OpenColorIO.vcxproj] yaml-cpp.lib(convert.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't ma tch value 'MDd_DynamicDebug' in CategoryHelpers.obj [C:\Users\samue\Source\OpenColorIO\build\src\OpenColorIO\OpenColorI O.vcxproj] yaml-cpp.lib(node_data.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match val ue '2' in CategoryHelpers.obj [C:\Users\samue\Source\OpenColorIO\build\src\OpenColorIO\OpenColorIO.vcxproj] yaml-cpp.lib(node_data.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in CategoryHelpers.obj [C:\Users\samue\Source\OpenColorIO\build\src\OpenColorIO\OpenColo rIO.vcxproj] yaml-cpp.lib(exceptions.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match va lue '2' in CategoryHelpers.obj [C:\Users\samue\Source\OpenColorIO\build\src\OpenColorIO\OpenColorIO.vcxproj] yaml-cpp.lib(exceptions.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in CategoryHelpers.obj [C:\Users\samue\Source\OpenColorIO\build\src\OpenColorIO\OpenCol orIO.vcxproj] yaml-cpp.lib(memory.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in CategoryHelpers.obj [C:\Users\samue\Source\OpenColorIO\build\src\OpenColorIO\OpenColorIO.vcxproj] yaml-cpp.lib(memory.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't mat ch value 'MDd_DynamicDebug' in CategoryHelpers.obj [C:\Users\samue\Source\OpenColorIO\build\src\OpenColorIO\OpenColorIO .vcxproj] yaml-cpp.lib(yaml-cpp.dll) : error LNK2005: "public: __cdecl YAML::InvalidNode::InvalidNode(class std::basic_string<cha r,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0InvalidNode@YAML@@QEAA@AEBV?$basic_string@DU ?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) already defined in yaml-cpp.lib(convert.obj) [C:\Users\samue\Source\Ope nColorIO\build\src\OpenColorIO\OpenColorIO.vcxproj] yaml-cpp.lib(yaml-cpp.dll) : error LNK2005: "public: virtual __cdecl YAML::BadConversion::~BadConversion(void)" (??1Bad Conversion@YAML@@UEAA@XZ) already defined in yaml-cpp.lib(exceptions.obj) [C:\Users\samue\Source\OpenColorIO\build\src\ OpenColorIO\OpenColorIO.vcxproj] yaml-cpp.lib(yaml-cpp.dll) : error LNK2005: "public: enum YAML::NodeType::value __cdecl YAML::Node::Type(void)const " ( ?Type@Node@YAML@@QEBA?AW4value@NodeType@2@XZ) already defined in yaml-cpp.lib(convert.obj) [C:\Users\samue\Source\OpenC olorIO\build\src\OpenColorIO\OpenColorIO.vcxproj] yaml-cpp.lib(yaml-cpp.dll) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class s td::allocator<char> > const & __cdecl YAML::Node::Scalar(void)const " (?Scalar@Node@YAML@@QEBAAEBV?$basic_string@DU?$ch ar_traits@D@std@@V?$allocator@D@2@@std@@XZ) already defined in yaml-cpp.lib(convert.obj) [C:\Users\samue\Source\OpenCol orIO\build\src\OpenColorIO\OpenColorIO.vcxproj] yaml-cpp.lib(yaml-cpp.dll) : error LNK2005: "public: static bool __cdecl YAML::convert<bool>::decode(class YAML::Node c onst &,bool &)" (?decode@?$convert@_N@YAML@@SA_NAEBVNode@2@AEA_N@Z) already defined in yaml-cpp.lib(convert.obj) [C:\Us ers\samue\Source\OpenColorIO\build\src\OpenColorIO\OpenColorIO.vcxproj] Creating library C:/Users/samue/Source/OpenColorIO/build/src/OpenColorIO/Debug/OpenColorIO.lib and object C:/Users /samue/Source/OpenColorIO/build/src/OpenColorIO/Debug/OpenColorIO.exp LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library [C:\Users\samue \Source\OpenColorIO\build\src\OpenColorIO\OpenColorIO.vcxproj] C:\Users\samue\Source\OpenColorIO\build\src\OpenColorIO\Debug\OpenColorIO_2_5.dll : fatal error LNK1169: one or more mu ltiply defined symbols found [C:\Users\samue\Source\OpenColorIO\build\src\OpenColorIO\OpenColorIO.vcxproj]