用C ++ 14编译时Octave 4.2.2存在歧义问题

时间:2019-01-21 14:11:34

标签: gcc c++14 octave

最近我由于其高级功能而升级到c ++ 14,但是在我使用c ++ 14编译ffmpeg,opencv,...的项目中,Range和Complex变量的Octave编译遇到了模棱两可的问题。等

使用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);
                                               ^

0 个答案:

没有答案