AcademySoftwareFoundation / AcademySoftwareFoundation/OpenColorIO

Linker Errors when Building on Win64 - Problem with yaml-cpp and OIIO

Aperta
#2,141 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
C++
Stelle
2.1k
Fork
505
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

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,class std::allocator > 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,class s
td::allocator > 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::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]`

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Iniziare con la configurazione CMake utilizzata per compilare OpenColorIO su Win64 e con lo script di build di OpenRV menzionato nel report; riprodurre il comando del linker Debug e analizzare come vengono selezionati yaml-cpp, Imath e pystring. Il lavoro è completato quando una build termina senza gli errori LNK2038, LNK2005 e LNK1169 riportati.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
cmake, cpp
Ambito
build-system
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Tranquilla
Chiarezza
Da chiarire
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.