最近我由于其高级功能而升级到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);
^