I am on trying to build Mitsuba on Ubuntu 16.04, yet I keep getting this error.
g++ -o build/release/integrators/misc/motion.os -c -O3 -Wall -g -pipe -march=nocona -msse2 -ftree-vectorize -mfpmath=sse -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fno-math-errno -fomit-frame-pointer -DMTS_DEBUG -DSINGLE_PRECISION -DSPECTRUM_SAMPLES=3 -DMTS_SSE -DMTS_HAS_COHERENT_RT -fopenmp -fvisibility=hidden -mtls-dialect=gnu2 -fPIC -DMTS_HAS_LIBPNG=1 -DMTS_HAS_LIBJPEG=1 -DMTS_HAS_OPENEXR=1 -DMTS_HAS_FFTW=1 -I/usr/include/eigen3 -I/usr/include/OpenEXR -Iinclude src/integrators/misc/motion.cpp
In file included from /usr/include/eigen3/Eigen/Core:341:0,
from include/mitsuba/core/autodiff.h:28,
from src/integrators/misc/motion.cpp:21:
/usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h: In instantiation of ‘void Eigen::internal::mul_assign_op<DstScalar, SrcScalar>::assignCoeff(DstScalar&, const SrcScalar&) const [with DstScalar = DScalar1<float, Eigen::Matrix<float, 1, 7> >; SrcScalar = DScalar1<float, Eigen::Matrix<float, 1, 7> >]’:
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:577:5: required from ‘void Eigen::internal::generic_dense_assignment_kernel<DstEvaluatorTypeT, SrcEvaluatorTypeT, Functor, Version>::assignCoeff(Eigen::Index) [with DstEvaluatorTypeT = Eigen::internal::evaluator<Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1> >; SrcEvaluatorTypeT = Eigen::internal::evaluator<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<DScalar1<float, Eigen::Matrix<float, 1, 7> > >, Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1> > >; Functor = Eigen::internal::mul_assign_op<DScalar1<float, Eigen::Matrix<float, 1, 7> >, DScalar1<float, Eigen::Matrix<float, 1, 7> > >; int Version = 0; Eigen::Index = long int]’
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:213:5: required from ‘static void Eigen::internal::copy_using_evaluator_LinearTraversal_CompleteUnrolling<Kernel, Index, Stop>::run(Kernel&) [with Kernel = Eigen::internal::generic_dense_assignment_kernel<Eigen::internal::evaluator<Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1> >, Eigen::internal::evaluator<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<DScalar1<float, Eigen::Matrix<float, 1, 7> > >, Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1> > >, Eigen::internal::mul_assign_op<DScalar1<float, Eigen::Matrix<float, 1, 7> >, DScalar1<float, Eigen::Matrix<float, 1, 7> > >, 0>; int Index = 0; int Stop = 3]’
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:470:106: required from ‘static void Eigen::internal::dense_assignment_loop<Kernel, 1, 2>::run(Kernel&) [with Kernel = Eigen::internal::generic_dense_assignment_kernel<Eigen::internal::evaluator<Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1> >, Eigen::internal::evaluator<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<DScalar1<float, Eigen::Matrix<float, 1, 7> > >, Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1> > >, Eigen::internal::mul_assign_op<DScalar1<float, Eigen::Matrix<float, 1, 7> >, DScalar1<float, Eigen::Matrix<float, 1, 7> > >, 0>]’
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:653:37: required from ‘void Eigen::internal::call_dense_assignment_loop(const DstXprType&, const SrcXprType&, const Functor&) [with DstXprType = Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1>; SrcXprType = Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<DScalar1<float, Eigen::Matrix<float, 1, 7> > >, Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1> >; Functor = Eigen::internal::mul_assign_op<DScalar1<float, Eigen::Matrix<float, 1, 7> >, DScalar1<float, Eigen::Matrix<float, 1, 7> > >]’
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:790:31: required from ‘static void Eigen::internal::Assignment<DstXprType, SrcXprType, Functor, Eigen::internal::Dense2Dense, Scalar>::run(DstXprType&, const SrcXprType&, const Functor&) [with DstXprType = Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1>; SrcXprType = Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<DScalar1<float, Eigen::Matrix<float, 1, 7> > >, Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1> >; Functor = Eigen::internal::mul_assign_op<DScalar1<float, Eigen::Matrix<float, 1, 7> >, DScalar1<float, Eigen::Matrix<float, 1, 7> > >; Scalar = DScalar1<float, Eigen::Matrix<float, 1, 7> >]’
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:747:49: required from ‘void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1>; Src = Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<DScalar1<float, Eigen::Matrix<float, 1, 7> > >, Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1> >; Func = Eigen::internal::mul_assign_op<DScalar1<float, Eigen::Matrix<float, 1, 7> >, DScalar1<float, Eigen::Matrix<float, 1, 7> > >]’
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:712:27: required from ‘void Eigen::internal::call_assignment(Dst&, const Src&, const Func&, typename Eigen::internal::enable_if<(! Eigen::internal::evaluator_assume_aliasing<Src>::value), void*>::type) [with Dst = Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1>; Src = Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<DScalar1<float, Eigen::Matrix<float, 1, 7> > >, Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1> >; Func = Eigen::internal::mul_assign_op<DScalar1<float, Eigen::Matrix<float, 1, 7> >, DScalar1<float, Eigen::Matrix<float, 1, 7> > >; typename Eigen::internal::enable_if<(! Eigen::internal::evaluator_assume_aliasing<Src>::value), void*>::type = void*]’
/usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h:19:28: required from ‘Derived& Eigen::DenseBase<Derived>::operator*=(const Scalar&) [with Derived = Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1>; Eigen::DenseBase<Derived>::Scalar = DScalar1<float, Eigen::Matrix<float, 1, 7> >]’
src/integrators/misc/motion.cpp:471:7: required from here
/usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h:88:102: error: no match for ‘operator*=’ (operand types are ‘DScalar1<float, Eigen::Matrix<float, 1, 7> >’ and ‘const DScalar1<float, Eigen::Matrix<float, 1, 7> >’)
GEN_DEVICE_FUNC EIGEN_STRONG_INLINE void assignCoeff(DstScalar& a, const SrcScalar& b) const { a *= b; }
^
scons: *** [build/release/integrators/misc/motion.os] Error 1
scons: building terminated because of errors.
Am I on a wrong version of Eigen? If so, what version should I be building against?