cginternals / glbinding

A C++ binding for the OpenGL API, generated using the gl.xml specification.
https://glbinding.org
MIT License
832 stars 93 forks source link

VS2017 Runtime library mismatch problem. #261

Open hypernewbie opened 6 years ago

hypernewbie commented 6 years ago

Severity Code Description Project File Line Suppression State Error LNK2038 mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in ipe_core.obj IPE X:\code\ipe\glbinding.lib(Binding_objects_a.obj) 1

I built glbinding with /MD. Why is the linker showing /MDd when I include Binding.h? Is this a VS bug that this library triggers? Is there some kind of hardcoded #define somewhere adding linker flags? I suspect that something deep in glbinding there's some kind of #ifdef NDEBUG somewhere that adds linker flags, so when I include Binding.h it adds /MDd linker flag to my source code ipe_core.obj.

I think I'm going to go with the DLL version, which works well. But whatever is happening here is insane, please stop this.

hypernewbie commented 6 years ago

Never mind. The DLL version fails to compile with:

Severity    Code    Description Project File    Line    Suppression State
Error   LNK2019 unresolved external symbol __imp__invalid_parameter referenced in function "void __cdecl std::_Deallocate(void *,unsigned __int64,unsigned __int64,unsigned __int64)" (?_Deallocate@std@@YAXPEAX_K1_K@Z)    IPE X:\code\ipe\ipe_core.obj    1   
hypernewbie commented 6 years ago

I'm sure this is a great library if someone actually gets it to link.