Basically, the definitions of all of the print functions have been moved inline. That's a breaking change that leads to linker errors, for example :
shader.lib(shader.obj) : error LNK2019: unresolved external symbol __iob_func referenced in function mi_matrix_ident
shader.lib(shader.obj) : error LNK2019: unresolved exernal symbol fprintf referenced in function mi_matrix_ident
shader.lib(shader.obj) : error LNK2019: unresolved external symbol vsnprintf referenced in function mi_fatal
You can take a look here for what changed but basically you just need to recompile with vs >= vs2015 :
https://msdn.microsoft.com/en-us/lib...44.aspx#BK_CRT
shader.lib comes with 3.14.5.1 devkit.
Eventually, the temporary fix for those that wanna use vs2015 to compile their shaders :
#if defined(_MSC_VER) && _MSC_VER >= 1900
// use the legacy stdio defs
#pragma comment(lib, "legacy_stdio_definitions.lib")
// however the above doesn't fix the __imp___iob_func link error
#include <stdio.h>
extern "C" { FILE __iob_func[3] = { *stdin,*stdout,*stderr }; }
#endif
or if you don't plan to use the legacy_stdio_definitions lib, try this :
#if defined(_MSC_VER) && _MSC_VER >= 1900
#include <stdio.h>
extern "C" { FILE __iob_func[3] = { *stdin,*stdout,*stderr }; }
int (WINAPIV * __vsnprintf)(char *, size_t, const char*, va_list) = _vsnprintf;
int (WINAPIV * __fprintf)(FILE*const, const char* const, ...) = fprintf;
#endif
max