Blender Build Problems - OpenMP Linking Error

EDIT: Please read answer #2

I am currently working on Debian 9 (Stretch), CMake 3.17.3 and GCC 10.1.0 and setup Blender as described at https://wiki.blender.org/wiki/Building_Blender/Linux/Generic_Distro, using the precompiled libraries.

If I now try to run make, the build process shows errors and aborts.


In file included from /home/mainUser/git/blender/blender/source/blender/blenlib/intern/BLI_index_range.cc:20:0:
/home/mainUser/git/blender/blender/source/blender/blenlib/BLI_array.hh:92:50: error: ‘is_convertible_v’ is not a member of ‘std’
template<typename U, typename std::enable_if_t<std::is_convertible_v<U, T>> * = nullptr>

[ 61%] Built target bf_intern_openvdb
Makefile:182: recipe for target ‘all’ failed
make[1]: *** [all] Error 2

I uploaded the log file to pastebin: https://pastebin.com/N7iZXMZS

Does someone have an idea?

Best regards

Looks like you have multiple versions of gcc installed on your system? CMake is picking up the old one:

Configuring Blender in "/home/mainUser/git/blender/build_linux" ...
-- The C compiler identification is GNU 6.3.0
-- The CXX compiler identification is GNU 6.3.0
...
1 Like

This is unbelievable :grin: I forgot to purge gcc-6 and then overlooked it. This was the fastest useful reply I ever received. Thank you for your time. It now reaches 100%, but still does not compile. Since pastebin has an upload limit, the log file is now uploaded to pastiebin: Pastiebin.com 5f0f5ff5d9169

…/…/lib/libbf_intern_eigen.a(linear_solver.cc.o):linear_solver.cc:function Eigen::internal::sparse_time_dense_product_impl<Eigen::Transpose<Eigen::SparseMatrix<double, 0, int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1>, Eigen::Matrix<double, -1, 1, 0, -1, 1>, double, 1, true>::run(Eigen::Transpose<Eigen::SparseMatrix<double, 0, int> > const&, Eigen::Matrix<double, -1, 1, 0, -1, 1> const&, Eigen::Matrix<double, -1, 1, 0, -1, 1>&, double const&) [clone ._omp_fn.0]: error: undefined reference to ‘GOMP_loop_nonmonotonic_dynamic_start’

…/…/lib/libbf_intern_eigen.a(linear_solver.cc.o):linear_solver.cc:function Eigen::internal::sparse_time_dense_product_impl<Eigen::Transpose<Eigen::SparseMatrix<double, 0, int> >, Eigen::Matrix<double, -1, 1, 0, -1, 1>, Eigen::Matrix<double, -1, 1, 0, -1, 1>, double, 1, true>::run(Eigen::Transpose<Eigen::SparseMatrix<double, 0, int> > const&, Eigen::Matrix<double, -1, 1, 0, -1, 1> const&, Eigen::Matrix<double, -1, 1, 0, -1, 1>&, double const&) [clone ._omp_fn.0]: error: undefined reference to ‘GOMP_loop_nonmonotonic_dynamic_next’
collect2: error: ld returned 1 exit status
source/creator/CMakeFiles/blender.dir/build.make:504: recipe for target ‘bin/blender’ failed

The correct GCC version now gets detected but there still seems to be a problem with OpenMP. I’ll do a bit research, but if somebody knows what the problem is, I’d be glad if they let me know.

And again, thank you for your time.

Best regards

@Kruspe, were you able to fix this in the end? I am having the same errors related to linear_solver.cc, with both GCC versions 9 and 10.