В Octave 4.2.2 возникли неоднозначные проблемы при компиляции с c ++ 14 - PullRequest
0 голосов
/ 21 января 2019

Недавно я обновился до c ++ 14 из-за его расширенных возможностей, но я столкнулся с неоднозначной проблемой компиляции Octave для переменных Range и Complex в моем проекте, где я использовал c ++ 14 для компиляции ffmpeg, opencv, ... и т.д.

с c ++ 11 я никогда не сталкивался с проблемой октавы 4.0.0 и 4.2.2, но только с c ++ 14 я сталкивался с проблемой.

Было бы очень полезно, если бы кто-то предоставил решение для решения этой проблемы

In file included from /usr/include/octave-4.2.2/octave/Array.h:38:0,
                 from /usr/include/octave-4.2.2/octave/Sparse.h:37,
                 from /usr/include/octave-4.2.2/octave/MSparse.h:31,
                 from /usr/include/octave-4.2.2/octave/MatrixType.h:29,
                 from /usr/include/octave-4.2.2/octave/mx-base.h:30,
                 from /usr/include/octave-4.2.2/octave/Matrix.h:32,
                 from /usr/include/octave-4.2.2/octave/oct.h:30,
                 from /home/arun/Desktop/proj/media/video.h:20,
                 from /home/arun/Desktop/proj/media/video.cpp:7:
/usr/include/octave-4.2.2/octave/idx-vector.h:173:26: error: reference to ‘Range’ is ambiguous
     idx_range_rep (const Range&);
                          ^
/usr/include/octave-4.2.2/octave/idx-vector.h:43:7: note: candidates are: class Range
 class Range;
       ^
In file included from /usr/local/include/opencv2/core.hpp:58:0,
                 from /usr/local/include/opencv2/opencv.hpp:52,
                 from /home/arun/Desktop/proj/media/video.cpp:2:
/usr/local/include/opencv2/core/types.hpp:590:18: note:                 class cv::Range
 class CV_EXPORTS Range
                  ^
In file included from /usr/include/octave-4.2.2/octave/Array.h:38:0,
                 from /usr/include/octave-4.2.2/octave/Sparse.h:37,
                 from /usr/include/octave-4.2.2/octave/MSparse.h:31,
                 from /usr/include/octave-4.2.2/octave/MatrixType.h:29,
                 from /usr/include/octave-4.2.2/octave/mx-base.h:30,
                 from /usr/include/octave-4.2.2/octave/Matrix.h:32,
                 from /usr/include/octave-4.2.2/octave/oct.h:30,
                 from /home/arun/Desktop/proj/media/video.h:20,
                 from /home/arun/Desktop/proj/media/video.cpp:7:
/usr/include/octave-4.2.2/octave/idx-vector.h:206:5: error: reference to ‘Range’ is ambiguous
     Range unconvert (void) const;
     ^
/usr/include/octave-4.2.2/octave/idx-vector.h:43:7: note: candidates are: class Range
 class Range;
       ^
In file included from /usr/local/include/opencv2/core.hpp:58:0,
                 from /usr/local/include/opencv2/opencv.hpp:52,
                 from /home/arun/Desktop/proj/media/video.cpp:2:
/usr/local/include/opencv2/core/types.hpp:590:18: note:                 class cv::Range
 class CV_EXPORTS Range
                  ^
In file included from /usr/include/octave-4.2.2/octave/Array.h:38:0,
                 from /usr/include/octave-4.2.2/octave/Sparse.h:37,
                 from /usr/include/octave-4.2.2/octave/MSparse.h:31,
                 from /usr/include/octave-4.2.2/octave/MatrixType.h:29,
                 from /usr/include/octave-4.2.2/octave/mx-base.h:30,
                 from /usr/include/octave-4.2.2/octave/Matrix.h:32,
                 from /usr/include/octave-4.2.2/octave/oct.h:30,
                 from /home/arun/Desktop/proj/media/video.h:20,
                 from /home/arun/Desktop/proj/media/video.cpp:7:
/usr/include/octave-4.2.2/octave/idx-vector.h:511:21: error: reference to ‘Range’ is ambiguous
   idx_vector (const Range& r)
                     ^
/usr/include/octave-4.2.2/octave/idx-vector.h:43:7: note: candidates are: class Range
 class Range;
       ^
In file included from /usr/local/include/opencv2/core.hpp:58:0,
                 from /usr/local/include/opencv2/opencv.hpp:52,
                 from /home/arun/Desktop/proj/media/video.cpp:2:
/usr/local/include/opencv2/core/types.hpp:590:18: note:                 class cv::Range
 class CV_EXPORTS Range
                  ^
In file included from /usr/include/octave-4.2.2/octave/Array.h:38:0,
                 from /usr/include/octave-4.2.2/octave/Sparse.h:37,
                 from /usr/include/octave-4.2.2/octave/MSparse.h:31,
                 from /usr/include/octave-4.2.2/octave/MatrixType.h:29,
                 from /usr/include/octave-4.2.2/octave/mx-base.h:30,
                 from /usr/include/octave-4.2.2/octave/Matrix.h:32,
                 from /usr/include/octave-4.2.2/octave/oct.h:30,
                 from /home/arun/Desktop/proj/media/video.h:20,
                 from /home/arun/Desktop/proj/media/video.cpp:7:
/usr/include/octave-4.2.2/octave/idx-vector.h:1005:35: error: reference to ‘Range’ is ambiguous
                   double& scalar, Range& range,
                                   ^
/usr/include/octave-4.2.2/octave/idx-vector.h:43:7: note: candidates are: class Range
 class Range;
       ^
In file included from /usr/local/include/opencv2/core.hpp:58:0,
                 from /usr/local/include/opencv2/opencv.hpp:52,
                 from /home/arun/Desktop/proj/media/video.cpp:2:
/usr/local/include/opencv2/core/types.hpp:590:18: note:                 class cv::Range
 class CV_EXPORTS Range
                  ^
In file included from /usr/include/octave-4.2.2/octave/Array.h:38:0,
                 from /usr/include/octave-4.2.2/octave/Sparse.h:37,
                 from /usr/include/octave-4.2.2/octave/MSparse.h:31,
                 from /usr/include/octave-4.2.2/octave/MatrixType.h:29,
                 from /usr/include/octave-4.2.2/octave/mx-base.h:30,
                 from /usr/include/octave-4.2.2/octave/Matrix.h:32,
                 from /usr/include/octave-4.2.2/octave/oct.h:30,
                 from /home/arun/Desktop/proj/media/video.h:20,
                 from /home/arun/Desktop/proj/media/video.cpp:7:
/usr/include/octave-4.2.2/octave/idx-vector.h:1005:35: error: ‘Range’ has not been declared
                   double& scalar, Range& range,
                                   ^
In file included from /usr/include/octave-4.2.2/octave/Array.h:41:0,
                 from /usr/include/octave-4.2.2/octave/Sparse.h:37,
                 from /usr/include/octave-4.2.2/octave/MSparse.h:31,
                 from /usr/include/octave-4.2.2/octave/MatrixType.h:29,
                 from /usr/include/octave-4.2.2/octave/mx-base.h:30,
                 from /usr/include/octave-4.2.2/octave/Matrix.h:32,
                 from /usr/include/octave-4.2.2/octave/oct.h:30,
                 from /home/arun/Desktop/proj/media/video.h:20,
                 from /home/arun/Desktop/proj/media/video.cpp:7:
/usr/include/octave-4.2.2/octave/lo-utils.h:71:52: error: reference to ‘Complex’ is ambiguous
 extern OCTAVE_API bool xtoo_large_for_float (const Complex&  x);
                                                    ^
In file included from /usr/include/octave-4.2.2/octave/lo-utils.h:36:0,
                 from /usr/include/octave-4.2.2/octave/Array.h:41,
                 from /usr/include/octave-4.2.2/octave/Sparse.h:37,
                 from /usr/include/octave-4.2.2/octave/MSparse.h:31,
                 from /usr/include/octave-4.2.2/octave/MatrixType.h:29,
                 from /usr/include/octave-4.2.2/octave/mx-base.h:30,
                 from /usr/include/octave-4.2.2/octave/Matrix.h:32,
                 from /usr/include/octave-4.2.2/octave/oct.h:30,
                 from /home/arun/Desktop/proj/media/video.h:20,
                 from /home/arun/Desktop/proj/media/video.cpp:7:
/usr/include/octave-4.2.2/octave/oct-cmplx.h:31:30: note: candidates are: typedef struct std::complex<double> Complex
 typedef std::complex<double> Complex;
                              ^
In file included from /usr/local/include/opencv2/core.hpp:54:0,
                 from /usr/local/include/opencv2/opencv.hpp:52,
                 from /home/arun/Desktop/proj/media/video.cpp:2:
/usr/local/include/opencv2/core/base.hpp:658:30: note:                 template<class _Tp> class cv::Complex
 template<typename _Tp> class Complex;
                              ^
In file included from /usr/include/octave-4.2.2/octave/Array.h:41:0,
                 from /usr/include/octave-4.2.2/octave/Sparse.h:37,
                 from /usr/include/octave-4.2.2/octave/MSparse.h:31,
                 from /usr/include/octave-4.2.2/octave/MatrixType.h:29,
                 from /usr/include/octave-4.2.2/octave/mx-base.h:30,
                 from /usr/include/octave-4.2.2/octave/Matrix.h:32,
                 from /usr/include/octave-4.2.2/octave/oct.h:30,
                 from /home/arun/Desktop/proj/media/video.h:20,
                 from /home/arun/Desktop/proj/media/video.cpp:7:
/usr/include/octave-4.2.2/octave/lo-utils.h:99:24: error: reference to ‘Complex’ is ambiguous
 template <> OCTAVE_API Complex octave_read_value (std::istream& is);
                        ^
In file included from /usr/include/octave-4.2.2/octave/lo-utils.h:36:0,
                 from /usr/include/octave-4.2.2/octave/Array.h:41,
                 from /usr/include/octave-4.2.2/octave/Sparse.h:37,
                 from /usr/include/octave-4.2.2/octave/MSparse.h:31,
                 from /usr/include/octave-4.2.2/octave/MatrixType.h:29,
                 from /usr/include/octave-4.2.2/octave/mx-base.h:30,
                 from /usr/include/octave-4.2.2/octave/Matrix.h:32,
                 from /usr/include/octave-4.2.2/octave/oct.h:30,
                 from /home/arun/Desktop/proj/media/video.h:20,
                 from /home/arun/Desktop/proj/media/video.cpp:7:
/usr/include/octave-4.2.2/octave/oct-cmplx.h:31:30: note: candidates are: typedef struct std::complex<double> Complex
 typedef std::complex<double> Complex;
                              ^
In file included from /usr/local/include/opencv2/core.hpp:54:0,
                 from /usr/local/include/opencv2/opencv.hpp:52,
                 from /home/arun/Desktop/proj/media/video.cpp:2:
/usr/local/include/opencv2/core/base.hpp:658:30: note:                 template<class _Tp> class cv::Complex
 template<typename _Tp> class Complex;
                              ^
In file included from /usr/include/octave-4.2.2/octave/Array.h:41:0,
                 from /usr/include/octave-4.2.2/octave/Sparse.h:37,
                 from /usr/include/octave-4.2.2/octave/MSparse.h:31,
                 from /usr/include/octave-4.2.2/octave/MatrixType.h:29,
                 from /usr/include/octave-4.2.2/octave/mx-base.h:30,
                 from /usr/include/octave-4.2.2/octave/Matrix.h:32,
                 from /usr/include/octave-4.2.2/octave/oct.h:30,
                 from /home/arun/Desktop/proj/media/video.h:20,
                 from /home/arun/Desktop/proj/media/video.cpp:7:
/usr/include/octave-4.2.2/octave/lo-utils.h:110:8: error: reference to ‘Complex’ is ambiguous
 inline Complex
        ^
In file included from /usr/include/octave-4.2.2/octave/lo-utils.h:36:0,
                 from /usr/include/octave-4.2.2/octave/Array.h:41,
                 from /usr/include/octave-4.2.2/octave/Sparse.h:37,
                 from /usr/include/octave-4.2.2/octave/MSparse.h:31,
                 from /usr/include/octave-4.2.2/octave/MatrixType.h:29,
                 from /usr/include/octave-4.2.2/octave/mx-base.h:30,
                 from /usr/include/octave-4.2.2/octave/Matrix.h:32,
                 from /usr/include/octave-4.2.2/octave/oct.h:30,
                 from /home/arun/Desktop/proj/media/video.h:20,
                 from /home/arun/Desktop/proj/media/video.cpp:7:
/usr/include/octave-4.2.2/octave/oct-cmplx.h:31:30: note: candidates are: typedef struct std::complex<double> Complex
 typedef std::complex<double> Complex;
                              ^
In file included from /usr/local/include/opencv2/core.hpp:54:0,
                 from /usr/local/include/opencv2/opencv.hpp:52,
                 from /home/arun/Desktop/proj/media/video.cpp:2:
/usr/local/include/opencv2/core/base.hpp:658:30: note:                 template<class _Tp> class cv::Complex
 template<typename _Tp> class Complex;
                              ^
In file included from /usr/include/octave-4.2.2/octave/Array.h:41:0,
                 from /usr/include/octave-4.2.2/octave/Sparse.h:37,
                 from /usr/include/octave-4.2.2/octave/MSparse.h:31,
                 from /usr/include/octave-4.2.2/octave/MatrixType.h:29,
                 from /usr/include/octave-4.2.2/octave/mx-base.h:30,
                 from /usr/include/octave-4.2.2/octave/Matrix.h:32,
                 from /usr/include/octave-4.2.2/octave/oct.h:30,
                 from /home/arun/Desktop/proj/media/video.h:20,
                 from /home/arun/Desktop/proj/media/video.cpp:7:
/usr/include/octave-4.2.2/octave/lo-utils.h:132:47: error: reference to ‘Complex’ is ambiguous
 octave_write_complex (std::ostream& os, const Complex& cval);
                                               ^
...