Page MenuHome

Blender won't compile with Collada
Closed, ArchivedPublic

Description

System Information
64bit Manjaro Linux, kernel 3.19.8
GeForce GTX 650 Ti, driver 349.16

Blender Version
Broken: 2.75-dev, hash 930bf58
Worked: 2.74

Short description of error
Blender will not compile when Collada is enabled under cmake.

[ 85%] Building CXX object source/blender/collada/CMakeFiles/bf_collada.dir/SceneExporter.cpp.o
/home/zauber/BUILD/blender/blender-d808/source/blender/collada/SceneExporter.cpp: In member function ‘void SceneExporter::writeNodes(Object*, Scene*)’:
/home/zauber/BUILD/blender/blender-d808/source/blender/collada/SceneExporter.cpp:153:13: error: ‘class COLLADASW::InstanceGeometry’ has no member named ‘setName’
    instGeom.setName(translate_id(id_name(ob)));
             ^
source/blender/collada/CMakeFiles/bf_collada.dir/build.make:537: recipe for target 'source/blender/collada/CMakeFiles/bf_collada.dir/SceneExporter.cpp.o' failed
make[2]: *** [source/blender/collada/CMakeFiles/bf_collada.dir/SceneExporter.cpp.o] Error 1
CMakeFiles/Makefile2:6058: recipe for target 'source/blender/collada/CMakeFiles/bf_collada.dir/all' failed
make[1]: *** [source/blender/collada/CMakeFiles/bf_collada.dir/all] Error 2
Makefile:146: recipe for target 'all' failed
make: *** [all] Error 2

Exact steps for others to reproduce the error

  1. Attempt to compile blender with Collada enabled.

Event Timeline

When was the last time you updated the libs via install-deps.sh? A re-run might fix it.

Bastien Montagne (mont29) changed the task status from Unknown Status to Archived.May 28 2015, 8:01 AM
Bastien Montagne (mont29) claimed this task.

Yes, you have no up-to-date collada library, pease run again install_deps.sh script...

I apologize for being late replying to this. Re-running install_deps.sh does fix the collada issue. However, the resulting binary was crashing when rendering most scenes (and I mean it crashed immediately the moment the render begins, and nothing appears).

The problem was that the boost version built by install_deps.sh (1.51) was incompatible with the version that Manjaro has (1.58). So, after a short period of angrily bemoaning how boost (which I really really hate) had gotten in my way while trying to compile a working application yet again, I tried deleting the 1.51 boost lib the script had built, but that didn't fix the binary after a recompile.

So, I analyzed the script and found it was copying the built dependencies to /opt/lib. So, I deleted the boost stuff out of /opt/lib and then reconfigure + recompile, and it still won't work.

So, after a few hours of wasted time, I can only assume at this point that boost 1.51 is a hard dependency. Have I mentioned yet that I really really hate boost?

EDIT: Yes, I have disabled Open Color IO during cmake configuration, as the build process reported that it was Open Color IO that was trying to use the (now-missing) boost 1.51 libs. It just now occured to me that the compiled version of opencolorio was expecting 1.51, so I have deleted both it and openexr from the /opt/lib directory. Recompiling now, and it should use the system versions of opencolorio and openexr. Conveniently, the system versions are the same version numbers as those built by the dependency script.

EDIT 2: Works now.

No, boost 1.51 is by no mean a dependency, any recent boost shall work (here on debian testing I’m on 1.55 currently).

Think you are facing a mismatch of different issues here (like various libs compiled with various boost versions or so), suggest you remove everything in /opt/lib and re-run install_deps.sh, and then make a clean build of Blender.

eeh, did not saw your edits. :)