kronihias / ambix

cross-platform Ambisonic VST, LV2 plug-ins with variable order for use in Digital Audio Workstations like Reaper or Ardour or as Jack standalone applications
GNU General Public License v2.0
235 stars 34 forks source link

Build fails on Debian stretch #11

Closed senatoreg closed 7 years ago

senatoreg commented 7 years ago

i'm trying to build ambix lv2 plugin on my debian but i'm getting the following error.

is the 3.3 version of eigen library not fully compatible with ambix plugin?

[ 25%] Building CXX object ambix_directional_loudness/ambix_directional_loudness/CMakeFiles/ambix_directional_loudness_o5.dir//Source/PluginProcessor.cpp.o cd /dpkgs/music/ambisonic/ambix-0.2.6+594e98e/obj-x86_64-linux-gnu/ambix_directional_loudness/ambix_directional_loudness && /usr/bin/c++ -DAMBI_ORDER=5 -DJUCE_ALSA=1 -DJUCE_JACK=1 -DJUCE_LINUX=1 -DJUCE_STANDALONE_APPLICATION=1 -DJucePlugin_Build_LV2=1 -DJucePlugin_Build_VST=1 -DLINUX=1 -DNDEBUG=1 -DNUM_FILTERS=8 -DNUM_FILTERS_VMIC=8 -DNUM_OUTPUTS=48 -DVERSION=0.2.6 -DWITH_ADVANCED_CONTROL=1 -DWITH_OSC=1 -D_NDEBUG=1 -Dambix_directional_loudness_o5_EXPORTS -I/dpkgs/music/ambisonic/ambix-0.2.6+594e98e/common/LegendreU -I/dpkgs/music/ambisonic/ambix-0.2.6+594e98e/common/SphFilter -I/dpkgs/music/ambisonic/ambix-0.2.6+594e98e/common/SphericalHarmonic -I/dpkgs/music/ambisonic/ambix-0.2.6+594e98e/common/Ressources -I/dpkgs/music/ambisonic/ambix-0.2.6+594e98e/common -I/dpkgs/music/ambisonic/ambix-0.2.6+594e98e/JUCE -I/opt/VST3_SDK -I/usr/include/eigen3 -I/usr/include/freetype2 -I/dpkgs/music/ambisonic/ambix-0.2.6+594e98e/ambix_directional_loudness/ambix_directional_loudness/JuceLibraryCode -I/dpkgs/music/ambisonic/ambix-0.2.6+594e98e/ambix_directional_loudness/JuceLibraryCode -DHAVE_LROUND -msse3 -fPIC -std=c++11 -o CMakeFiles/ambix_directional_loudness_o5.dir//Source/PluginProcessor.cpp.o -c /dpkgs/music/ambisonic/ambix-0.2.6+594e98e/ambix_directional_loudness/Source/PluginProcessor.cpp In file included from /usr/include/eigen3/Eigen/Core:387:0, from /usr/include/eigen3/Eigen/Dense:1, from /usr/include/eigen3/Eigen/Eigen:1, from /dpkgs/music/ambisonic/ambix-0.2.6+594e98e/common/SphericalHarmonic/ShNorm.h:27, from /dpkgs/music/ambisonic/ambix-0.2.6+594e98e/common/SphericalHarmonic/SphericalHarmonic.h:24, from /dpkgs/music/ambisonic/ambix-0.2.6+594e98e/ambix_directional_loudness/Source/PluginProcessor.h:24, from /dpkgs/music/ambisonic/ambix-0.2.6+594e98e/ambix_directional_loudness/Source/PluginProcessor.cpp:20: /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h: In instantiation of ‘void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<double, -1, -1>; Src = Eigen::Inverse<Eigen::ColPivHouseholderQR<Eigen::Matrix<double, -1, -1> > >; Func = Eigen::internal::assign_op<double, double>]’: /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h:721:41: required from ‘Derived& Eigen::PlainObjectBase::_set_noalias(const Eigen::DenseBase&) [with OtherDerived = Eigen::Inverse<Eigen::ColPivHouseholderQR<Eigen::Matrix<double, -1, -1> > >; Derived = Eigen::Matrix<double, -1, -1>]’ /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h:531:7: required from ‘Eigen::PlainObjectBase::PlainObjectBase(const Eigen::DenseBase&) [with OtherDerived = Eigen::Inverse<Eigen::ColPivHouseholderQR<Eigen::Matrix<double, -1, -1> > >; Derived = Eigen::Matrix<double, -1, -1>]’ /usr/include/eigen3/Eigen/src/Core/Matrix.h:379:29: required from ‘Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>::Matrix(const Eigen::EigenBase&) [with OtherDerived = Eigen::Inverse<Eigen::ColPivHouseholderQR<Eigen::Matrix<double, -1, -1> > >; _Scalar = double; int _Rows = -1; int _Cols = -1; int _Options = 0; int _MaxRows = -1; int _MaxCols = -1]’ /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h:464:103: required from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 8>::scaleAndAddTo(Dest&, const Lhs&, const Rhs&, const Scalar&) [with Dest = Eigen::Matrix<double, -1, -1>; Lhs = Eigen::Inverse<Eigen::ColPivHouseholderQR<Eigen::Matrix<double, -1, -1> > >; Rhs = Eigen::Transpose<Eigen::Matrix<double, -1, -1> >; Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 8>::Scalar = double]’ /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h:435:20: required from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 8>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Matrix<double, -1, -1>; Lhs = Eigen::Inverse<Eigen::ColPivHouseholderQR<Eigen::Matrix<double, -1, -1> > >; Rhs = Eigen::Transpose<Eigen::Matrix<double, -1, -1> >]’ /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h:144:43: [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] /usr/include/eigen3/Eigen/src/Core/Matrix.h:296:31: required from ‘Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>::Matrix(const T&) [with T = Eigen::Product<Eigen::Inverse<Eigen::ColPivHouseholderQR<Eigen::Matrix<double, -1, -1> > >, Eigen::Transpose<Eigen::Matrix<double, -1, -1> >, 0>; _Scalar = double; int _Rows = -1; int _Cols = -1; int _Options = 0; int _MaxRows = -1; int _MaxCols = -1]’ /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:740:48: required from ‘void Eigen::internal::call_assignment(Dst&, const Src&, const Func&, typename Eigen::internal::enable_ifEigen::internal::evaluator_assumealiasing<Src::value, void>::type) [with Dst = Eigen::Matrix<double, -1, -1>; Src = Eigen::Product<Eigen::Inverse<Eigen::ColPivHouseholderQR<Eigen::Matrix<double, -1, -1> > >, Eigen::Transpose<Eigen::Matrix<double, -1, -1> >, 0>; Func = Eigen::internal::assign_op<double, double>; typename Eigen::internal::enable_ifEigen::internal::evaluator_assumealiasing<Src::value, void>::type = void*]’ /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:726:18: required from ‘void Eigen::internal::call_assignment(Dst&, const Src&) [with Dst = Eigen::Matrix<double, -1, -1>; Src = Eigen::Product<Eigen::Inverse<Eigen::ColPivHouseholderQR<Eigen::Matrix<double, -1, -1> > >, Eigen::Transpose<Eigen::Matrix<double, -1, -1> >, 0>]’ /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h:703:32: required from ‘Derived& Eigen::PlainObjectBase::_set(const Eigen::DenseBase&) [with OtherDerived = Eigen::Product<Eigen::Inverse<Eigen::ColPivHouseholderQR<Eigen::Matrix<double, -1, -1> > >, Eigen::Transpose<Eigen::Matrix<double, -1, -1> >, 0>; Derived = Eigen::Matrix<double, -1, -1>]’ /usr/include/eigen3/Eigen/src/Core/Matrix.h:225:24: required from ‘Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>& Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>::operator=(const Eigen::DenseBase&) [with OtherDerived = Eigen::Product<Eigen::Inverse<Eigen::ColPivHouseholderQR<Eigen::Matrix<double, -1, -1> > >, Eigen::Transpose<Eigen::Matrix<double, -1, -1> >, 0>; _Scalar = double; int _Rows = -1; int _Cols = -1; int _Options = 0; int _MaxRows = -1; int _MaxCols = -1]’ /dpkgs/music/ambisonic/ambix-0.2.6+594e98e/ambix_directional_loudness/Source/PluginProcessor.cpp:459:111: required from here /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:785:49: error: ambiguous template instantiation for ‘struct Eigen::internal::Assignment<Eigen::Matrix<double, -1, -1>, Eigen::Inverse<Eigen::ColPivHouseholderQR<Eigen::Matrix<double, -1, -1> > >, Eigen::internal::assign_op<double, double>, Eigen::internal::Dense2Dense, void>’ Assignment<ActualDstTypeCleaned,Src,Func>::run(actualDst, src, func);

/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:823:8: note: candidates are: template<class DstXprType, class SrcXprType, class Functor, class Weak> struct Eigen::internal::Assignment<DstXprType, SrcXprType, Functor, Eigen::internal::Dense2Dense, Weak> [with DstXprType = Eigen::Matrix<double, -1, -1>; SrcXprType = Eigen::Inverse<Eigen::ColPivHouseholderQR<Eigen::Matrix<double, -1, -1> > >; Functor = Eigen::internal::assign_op<double, double>; Weak = void]
 struct Assignment<DstXprType, SrcXprType, Functor, Dense2Dense, Weak>
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/eigen3/Eigen/LU:35:0,
                 from /usr/include/eigen3/Eigen/Dense:2,
                 from /usr/include/eigen3/Eigen/Eigen:1,
                 from /dpkgs/music/ambisonic/ambix-0.2.6+594e98e/common/SphericalHarmonic/ShNorm.h:27,
                 from /dpkgs/music/ambisonic/ambix-0.2.6+594e98e/common/SphericalHarmonic/SphericalHarmonic.h:24,
                 from /dpkgs/music/ambisonic/ambix-0.2.6+594e98e/ambix_directional_loudness/Source/PluginProcessor.h:24,
                 from /dpkgs/music/ambisonic/ambix-0.2.6+594e98e/ambix_directional_loudness/Source/PluginProcessor.cpp:20:
/usr/include/eigen3/Eigen/src/LU/InverseImpl.h:290:8: note:                 template<class DstXprType, class XprType> struct Eigen::internal::Assignment<DstXprType, Eigen::Inverse<Rhs>, Eigen::internal::assign_op<typename DstXprType::Scalar, typename SrcXprType::Scalar>, Eigen::internal::Dense2Dense> [with DstXprType = Eigen::Matrix<double, -1, -1>; XprType = Eigen::ColPivHouseholderQR<Eigen::Matrix<double, -1, -1> >]
 struct Assignment<DstXprType, Inverse<XprType>, internal::assign_op<typename DstXprType::Scalar,typename XprType::Scalar>, Dense2Dense>
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/eigen3/Eigen/QR:36:0,
                 from /usr/include/eigen3/Eigen/Dense:4,
                 from /usr/include/eigen3/Eigen/Eigen:1,
                 from /dpkgs/music/ambisonic/ambix-0.2.6+594e98e/common/SphericalHarmonic/ShNorm.h:27,
                 from /dpkgs/music/ambisonic/ambix-0.2.6+594e98e/common/SphericalHarmonic/SphericalHarmonic.h:24,
                 from /dpkgs/music/ambisonic/ambix-0.2.6+594e98e/ambix_directional_loudness/Source/PluginProcessor.h:24,
                 from /dpkgs/music/ambisonic/ambix-0.2.6+594e98e/ambix_directional_loudness/Source/PluginProcessor.cpp:20:
/usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h:620:8: note:                 template<class DstXprType, class MatrixType, class Scalar> struct Eigen::internal::Assignment<DstXprType, Eigen::Inverse<Eigen::ColPivHouseholderQR<MatrixType> >, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense> [with DstXprType = Eigen::Matrix<double, -1, -1>; MatrixType = Eigen::Matrix<double, -1, -1>; Scalar = double]
 struct Assignment<DstXprType, Inverse<ColPivHouseholderQR<MatrixType> >, internal::assign_op<Scalar,Scalar>, Dense2Dense>
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/eigen3/Eigen/Core:387:0,
                 from /usr/include/eigen3/Eigen/Dense:1,
                 from /usr/include/eigen3/Eigen/Eigen:1,
                 from /dpkgs/music/ambisonic/ambix-0.2.6+594e98e/common/SphericalHarmonic/ShNorm.h:27,
                 from /dpkgs/music/ambisonic/ambix-0.2.6+594e98e/common/SphericalHarmonic/SphericalHarmonic.h:24,
                 from /dpkgs/music/ambisonic/ambix-0.2.6+594e98e/ambix_directional_loudness/Source/PluginProcessor.h:24,
                 from /dpkgs/music/ambisonic/ambix-0.2.6+594e98e/ambix_directional_loudness/Source/PluginProcessor.cpp:20:
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:785:49: error: incomplete type ‘Eigen::internal::Assignment<Eigen::Matrix<double, -1, -1>, Eigen::Inverse<Eigen::ColPivHouseholderQR<Eigen::Matrix<double, -1, -1> > >, Eigen::internal::assign_op<double, double>, Eigen::internal::Dense2Dense, void>’ used in nested name specifier
   Assignment<ActualDstTypeCleaned,Src,Func>::run(actualDst, src, func);
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
ambix_directional_loudness/ambix_directional_loudness/CMakeFiles/ambix_directional_loudness_o5.dir/build.make:185: recipe for target 'ambix_directional_loudness/ambix_directional_loudness/CMakeFiles/ambix_directional_loudness_o5.dir/__/Source/PluginProcessor.cpp.o' failed
make[2]: *** [ambix_directional_loudness/ambix_directional_loudness/CMakeFiles/ambix_directional_loudness_o5.dir/__/Source/PluginProcessor.cpp.o] Error 1
make[2]: Leaving directory '/dpkgs/music/ambisonic/ambix-0.2.6+594e98e/obj-x86_64-linux-gnu'
CMakeFiles/Makefile2:557: recipe for target 'ambix_directional_loudness/ambix_directional_loudness/CMakeFiles/ambix_directional_loudness_o5.dir/all' failed
make[1]: *** [ambix_directional_loudness/ambix_directional_loudness/CMakeFiles/ambix_directional_loudness_o5.dir/all] Error 2
make[1]: Leaving directory '/dpkgs/music/ambisonic/ambix-0.2.6+594e98e/obj-x86_64-linux-gnu'
Makefile:86: recipe for target 'all' failed
make: *** [all] Error 2

$ gcc --version        
gcc (Debian 6.2.0-6) 6.2.0 20161010
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ dpkg -l libeigen3-dev
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                                                      Version                                   Architecture                              Description
+++-=========================================================================-=========================================-=========================================-========================================================================================================================================================
ii  libeigen3-dev                                                             3.3~beta2-2                               all                                       lightweight C++ template library for linear algebra

$ cat /etc/debian_version 
stretch/sid

thanks.
giovanni
kronihias commented 7 years ago

this was a bug in eigen3.3 beta 2. with the newly released eigen3.3 it builds fine under osx. @senatoreg can you check again?

senatoreg commented 7 years ago

the build works fine.

thanks.