Blender build failed

I was following the instructions on how to build Blender, and i keep getting an error. here is a paste of my Build.log file: https://pastebin.com/w1UD3PsK

Not sure if the warnings have anything to do with it, but there is an error saying i am missing a file named “shobjidl_core.h”. i dont understand how that can happen since i should have followed the directions and downloaded all files through git clone git://git.blender.org/blender.git and make update. what am i doing wrong?

oh i am on Windows 7.

Let me see if I can help you figure this out. Anything in (parentheses) and italics isn’t for you @ktonegawa. They are notes to myself and developers about possible improvements in documentation.

I take it that you are following the instructions on: https://wiki.blender.org/wiki/Building_Blender/Windows

At the top of that page, there is a (hard to see IMO due to the header’s font size right below it) link to go back to: https://wiki.blender.org/wiki/Building_Blender (Note that the sidebar has this as the very first thing listed, but it isn’t a link. If I had a wiki account, that would be my #1 change: make those headers actual links!)

On: https://wiki.blender.org/wiki/Building_Blender, the second header is Resolving Build Failures. (I feel that this should be added as a link at the bottom of the https://wiki.blender.org/wiki/Building_Blender/Windows page)

The first section says (bolding mine):

Missing dependencies cause two types of compiler errors. No such file errors mean a header (.h) file is missing, while unresolved symbol errors when linking mean a library is missing. This is usually because either a path to the dependency was not set correctly in the build system, the dependency was not installed, or a wrong version of the dependency was used.

Finding out which dependencies are broken may sometimes be difficult. Searching online for the missing filenames or symbols will often give a quick answer. On systems with package managers the headers and libraries are usually in a separate development package, called for example foo-dev or foo-devel.

Troubleshooting 101: If you don’t know what it is, google search for it online. :wink:

Looking at the results, it shows that shobjidl_core.h is a Win32 API file, not a file provided by Blender.

The next step I took was to search my C: drive for shobjidl_core.h. It was found in my C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um folder.

As you are on Windows 7, it would be in a slightly different location. Search for it to see

  1. if you even have the file and
  2. if so, where is it?

Hi there, thank you for that information, i totally did not see the “Resolving Build Errors” page, and when I was searching for that header file I honestly thought it was Blender related so when I put “Blender” as a keyword i guess nothing relevant popped up.

I immediately then looked for this ShObjIdl_core.h file, and funny enough i found four copies of it in my system, all located here:
C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\um
C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\um
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um

So if this is the case, how come these files aren’t being picked up by Blender when building? what paths do i need to modify to be able to utilize these header files?

Hi, is it possible you are on a 32 Bit system?
I am on Linux but iirc C:\Program Files (x86)\ is for 32 Bit software.
32 Bit is not supported but may you need only a Windows Kits for x64 version.

Cheers, mib

@mib2berlin a perfectly reasonable suggestion if you aren’t familiar with Windows SDK and MSVC. MSVC is only available as a 32 bit program, there is no 64 bit version.

Edit: that is to say that while you are correct in the fact that Blender is only set up to build and run as a 64 bit program on a 64 bit OS, it is still built using a 32 bit program on Windows.
Cheers!

1 Like

To clarify, yes I am running 64bit of Windows 7.

So what do i do next…?

And not sure if this is relevant, but i opened the c:\blender-git\build_windows_x64_vc16_Release\source\blender\blenlib\bf_blenlib.vcxproj file on Visual Studio 2019, and took a look at its External Dependencies, it looks like through this it can locate this shobjidl_core.h header file just fine

slight update: i was looking into this more, and i checked the c file where this was erroring out on, and to my surprise Visual Studio also seems to be logging the same error of not being able to find that header file

https://pasteboard.co/Jhl87Xb.png

is it possible that when this whole WIN32 is set it was using the wrong/older directory…? if so, how do i change that within the entire Blender build…?

That is the shobjidl.h header file, not the shobjidl_core.h. Also notice that it is looking in the 8.1 folder, but you only have shobjidl_core.h in the 10. I am not sure if building on Windows 7 is suppose to use Windows 8.1 and Windows 10 SDKs, if you are missing the SDKs you need, or if there is an issue with the Blender code in how it looks for external dependencies.

Time to call in someone who knows what they are doing. @LazyDodo advice?

Looks like the header changed names between SDK versions, can you try replacing it in storage.c with # include <ShObjIdl.h> and see if it builds?

so i made this change in storage.c

And i ran the make command again, and it looks like it succeeded, but there is a warning that doesn’t sound too great, can anyone confirm whether this is a safe build to be working with…?

https://pastebin.com/LrfVx6Su

if it build, you’re good, i’ll get that change in tomorrow so you don’t have to do any manual changes.

1 Like

okay. well i assume this occurred for me because i have multiple versions of Win32(?) installed for whatever reason. i am hoping the changes you submit will accommodate for cases like mine and not completely disregard shobjidl_core.h as a whole

anyways thank you for yours and EAW’s support. greatly appreciated

1 Like

fix landed earlier today, you should be good to go (and it’ll still work for people on the Win10SDK)

1 Like