[Bf-committers] Windows lib changes

Ray Molenkamp ray at lazydodo.com
Fri Nov 8 17:02:44 CET 2019


All,

Since the beginning of time we have always used a
weird mix of using the static C runtime for some
parts of blender while using the dynamic runtime
for others.

No-one exactly remembers how this came to be, but
what was clear that mixing runtimes is 'not great'
and that it eventually would cause issues, which
it recently did [1]

Today I'm cleaning it up and switching blender
over to the dynamic runtime on windows.

Now sadly this requires a whole new library set
so if you are building blender on windows you may
have some hiccups and unfortunately a large download.

Ideally you'd run 'make update' *twice* and it will
sort it self out. (Once to get the updated make.bat
that knows about the new libs, and a second time to
actually grab them)

However there are some side cases where people
did not follow our building guide and/or systems
where cmake just behaved oddly, so here is a list of
oddities you may run into and how to resolve them.

1) I get a build error along the lines of:

Windows requires pre-compiled libs at: 'c:/blender-git/blender/../lib/win64_vc15'.
Please run make update in the blender source folder to obtain them.

Solution:

Do what it says, if "make update" does not work for you, see 2

2) I checked out the libraries my self, I don't have SVN
in my path and/or "make update" does not work for me.

It happens, not everybody is following our building
instructions [2] for various reasons, and some environments
just don't seem to play nice with our scripts.

Solution:

You can check out the new set of libraries manually from

https://svn.blender.org/svnroot/bf-blender/trunk/lib/win64_vc15

just make sure they and up in the next to the win64_vc14 folder
you currently have and it should work.

3) I have a linker error mentioning a RuntimeLibrary mismatch

These generally come in the form of:

'RuntimeLibrary': value 'MTd_StaticRelease' doesn't match value 'MDd_DynamicRelease' in [somefile]

This seems to be coming from CMake not always picking
up on changes in the platform settings.

Solution:

Remove your build folder and start a fresh build

4) MSVC 2015

MSVC2015 has been superseded by 2 newer versions both
available for free, 2015 support will be dialed back
to the same level as 32 bit support. We don't test it
nor supply libraries for it anymore, however if you
have your own set of libraries and have patches that
help with vs2015 specific issues you are always
welcome to submit those.

Solution: Update to vs2017 or vs2019

5) I have a branch that has not merged this change yet.

That's OK, the static vc14 libraries will be available
for some time. However no further updates will be done
to them.

Special acknowledgments:

Thanks to @Harleya and @deadpin on chat for helping test
so we could have an as smooth as possible transition to
the new libs.

[1] https://developer.blender.org/D5387#122165
[2] https://wiki.blender.org/wiki/Building_Blender/Windows



More information about the Bf-committers mailing list