Problem compiling 2.83

When I try to compile v2.83 I get the following error from gcc:

blender-git/lib/linux_centos7_x86_64/usd/include/pxr/base/vt/dictionary.h:64:53: error: wrong number of template arguments (0, should be 1)
   64 |     typedef std::map<std::string, VtValue, std::less<>> _Map;

Followed by lots of similar errors.
I have the correct version of the lib dir checked out from svn (precompiled libs). I looked at the date of the v2.83 tag and checked out the corresponding libs from svn.

Does anybody have any experience with this? I’m a bit stumped.
Nothing has changed in that particular header file when I checkout the latest version, but master builds without problems. And I seem to remember having compiled v2.83 at the time without any problems as well. Could it be a compiler version problem?

This is gcc 9.3.0 on ubuntu 20.04.

regards,

baardaap

Hm, after fully building master, then wiping the build dir, checking out 2.83 and rebuilding it suddenly does compile. I don’t understand, but at least I can go on bisecting :slight_smile:

To avoid linker errors from dependencies, turn off the features that you don’t need. Comprehensive list is in blender_lite.cmake and blender_full.cmake.

Assuming you checked the date of 2.83 tag in git:

Libraries are tagged with release versions too.

I have a script which checks the date of the current git HEAD and checks out the corresponding libs from svn for easy bisecting (actually from a local git-svn copy to prevent hammering the svn server).

I’ll check if it matches the the svn v2.83 tag, but I don’t see why it wouldn’t.

fwiw I don’t have any linker errors when compiling v2.83, just the template errors listed above. Which somehow resolved themselves by first doing a complete build of master and then wiping the build dir (?) and then building v2.83. I have no clue what happened there, I expect something with the CMakeCache file?

I do have linker errors when compiling v2.82 or v2.81.
The strange thing is I have all the dependencies installed, but they are somehow not added to the linker commandline in the makefile / ninja file. I can get it a bit further by manually editing the ninja file and adding -lz -lboost -lboos_system -lboost_filesystem to the link command, but there is still some stuff missing (pow_finite IRRC).

But I can do bisects from v2.83 onwards, that’s good enough for now.