我在使用 opencv-2.4.2 安装 pyopencv 2.1.0 时遇到了一些错误,我的 python 版本是 2.7.3,我的操作系统是 OS X Mountain Lion,
过程信息如下,我发现一些错误表明'Mat'类被重新定义,但我不知道如何修复它,有没有朋友可以帮助我?感谢!
sudo python setup.py install
running install
running bdist_egg
running egg_info
writing requirements to package/pyopencv.egg-info/requires.txt
writing package/pyopencv.egg-info/PKG-INFO
writing top-level names to package/pyopencv.egg-info/top_level.txt
writing dependency_links to package/pyopencv.egg-info/dependency_links.txt
reading manifest file 'package/pyopencv.egg-info/SOURCES.txt'
writing manifest file 'package/pyopencv.egg-info/SOURCES.txt'
installing library code to build/bdist.macosx-10.8-x86_64/egg
running install_lib
running build_py
creating build/lib.macosx-10.8-x86_64-2.7
creating build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/__init__.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/common.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/config.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/cv_h.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/cv_hpp.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/cvaux.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/cvtypes_h.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/cvver_h.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/cxcore_h.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/cxcore_hpp.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/cxcore_hpp_point.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/cxcore_hpp_vec.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/cxerror_h.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/cxtypes_h.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/highgui.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/info.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/interfaces.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/ml.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
copying package/pyopencv/sdopencv.py -> build/lib.macosx-10.8-x86_64-2.7/pyopencv
running build_ext
building 'pyopencv.pyopencv_extras' extension
creating build/temp.macosx-10.8-x86_64-2.7
creating build/temp.macosx-10.8-x86_64-2.7/package
creating build/temp.macosx-10.8-x86_64-2.7/package/extras
creating build/temp.macosx-10.8-x86_64-2.7/package/extras/core
creating build/temp.macosx-10.8-x86_64-2.7/package/extras/sdopencv
/usr/bin/clang -fno-strict-aliasing -fno-common -dynamic -pipe -O2 -fwrapv -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -dynamiclib -I/System/Library/Frameworks/Python.framework/Headers -I/opt/local/include -I/opt/local/include/opencv -I/opt/local/include -I~/Downloads/pyopencv-2.1.0.wr1.2.0/package -I~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras -I~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core -I~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv -I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/include/numpy -I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c package/extras/core/ndarray.cpp -o build/temp.macosx-10.8-x86_64-2.7/package/extras/core/ndarray.o -O3 -DNDEBUG
clang: warning: argument unused during compilation: '-dynamiclib'
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:58:13: error:
redefinition of 'Mat'
inline Mat::Mat()
^
/opt/local/include/opencv2/core/mat.hpp:67:13: note: previous definition is here
inline Mat::Mat() : size(&rows)
^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:59:35: warning:
field 'step' will be initialized after field 'data' [-Wreorder]
: flags(0), rows(0), cols(0), step(0), data(0), refcount(0), ...
^
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:58:13: error:
constructor for 'cv::Mat' must explicitly initialize the member 'size'
which does not have a default constructor
inline Mat::Mat()
^
/opt/local/include/opencv2/core/core.hpp:1961:11: note: member is declared here
MSize size;
^
/opt/local/include/opencv2/core/core.hpp:1933:23: note: 'cv::Mat::MSize'
declared here
struct CV_EXPORTS MSize
^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:61:13: error:
redefinition of 'Mat'
inline Mat::Mat(int _rows, int _cols, int _type)
^
/opt/local/include/opencv2/core/mat.hpp:72:13: note: previous definition is here
inline Mat::Mat(int _rows, int _cols, int _type) : size(&rows)
^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:62:35: warning:
field 'step' will be initialized after field 'data' [-Wreorder]
: flags(0), rows(0), cols(0), step(0), data(0), refcount(0), ...
^
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:61:13: error:
constructor for 'cv::Mat' must explicitly initialize the member 'size'
which does not have a default constructor
inline Mat::Mat(int _rows, int _cols, int _type)
^
/opt/local/include/opencv2/core/core.hpp:1961:11: note: member is declared here
MSize size;
^
/opt/local/include/opencv2/core/core.hpp:1933:23: note: 'cv::Mat::MSize'
declared here
struct CV_EXPORTS MSize
^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:68:13: error:
redefinition of 'Mat'
inline Mat::Mat(int _rows, int _cols, int _type, const Scalar& _s)
^
/opt/local/include/opencv2/core/mat.hpp:78:13: note: previous definition is here
inline Mat::Mat(int _rows, int _cols, int _type, const Scalar& _s) : size(&rows)
^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:69:35: warning:
field 'step' will be initialized after field 'data' [-Wreorder]
: flags(0), rows(0), cols(0), step(0), data(0), refcount(0),
^
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:68:13: error:
constructor for 'cv::Mat' must explicitly initialize the member 'size'
which does not have a default constructor
inline Mat::Mat(int _rows, int _cols, int _type, const Scalar& _s)
^
/opt/local/include/opencv2/core/core.hpp:1961:11: note: member is declared here
MSize size;
^
/opt/local/include/opencv2/core/core.hpp:1933:23: note: 'cv::Mat::MSize'
declared here
struct CV_EXPORTS MSize
^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:79:13: error:
redefinition of 'Mat'
inline Mat::Mat(Size _size, int _type)
^
/opt/local/include/opencv2/core/mat.hpp:85:13: note: previous definition is here
inline Mat::Mat(Size _sz, int _type) : size(&rows)
^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:80:35: warning:
field 'step' will be initialized after field 'data' [-Wreorder]
: flags(0), rows(0), cols(0), step(0), data(0), refcount(0),
^
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:79:13: error:
constructor for 'cv::Mat' must explicitly initialize the member 'size'
which does not have a default constructor
inline Mat::Mat(Size _size, int _type)
^
/opt/local/include/opencv2/core/core.hpp:1961:11: note: member is declared here
MSize size;
^
/opt/local/include/opencv2/core/core.hpp:1933:23: note: 'cv::Mat::MSize'
declared here
struct CV_EXPORTS MSize
^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:87:13: error:
redefinition of 'Mat'
inline Mat::Mat(Size _size, int _type, const Scalar& _s)
^
/opt/local/include/opencv2/core/mat.hpp:91:13: note: previous definition is here
inline Mat::Mat(Size _sz, int _type, const Scalar& _s) : size(&rows)
^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:88:31: warning:
field 'step' will be initialized after field 'data' [-Wreorder]
: flags(0), rows(0), cols(0), step(0), data(0), refcount(0),
^
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:87:13: error:
constructor for 'cv::Mat' must explicitly initialize the member 'size'
which does not have a default constructor
inline Mat::Mat(Size _size, int _type, const Scalar& _s)
^
/opt/local/include/opencv2/core/core.hpp:1961:11: note: member is declared here
MSize size;
^
/opt/local/include/opencv2/core/core.hpp:1933:23: note: 'cv::Mat::MSize'
declared here
struct CV_EXPORTS MSize
^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:98:13: error:
redefinition of 'Mat'
inline Mat::Mat(const Mat& m)
^
/opt/local/include/opencv2/core/mat.hpp:111:13: note: previous definition is
here
inline Mat::Mat(const Mat& m)
^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:99:51: warning:
field 'step' will be initialized after field 'data' [-Wreorder]
: flags(m.flags), rows(m.rows), cols(m.cols), step(m.step), data(m.data),
^
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:98:13: error:
constructor for 'cv::Mat' must explicitly initialize the member 'size'
which does not have a default constructor
inline Mat::Mat(const Mat& m)
^
/opt/local/include/opencv2/core/core.hpp:1961:11: note: member is declared here
MSize size;
^
/opt/local/include/opencv2/core/core.hpp:1933:23: note: 'cv::Mat::MSize'
declared here
struct CV_EXPORTS MSize
^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:106:13: error:
redefinition of 'Mat'
inline Mat::Mat(int _rows, int _cols, int _type, void* _data, size_t _step)
^
/opt/local/include/opencv2/core/mat.hpp:129:13: note: previous definition is
here
inline Mat::Mat(int _rows, int _cols, int _type, void* _data, size_t _step)
^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:108:5: warning:
field 'step' will be initialized after field 'data' [-Wreorder]
step(_step), data((uchar*)_data), refcount(0),
^
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:106:13: error:
constructor for 'cv::Mat' must explicitly initialize the member 'size'
which does not have a default constructor
inline Mat::Mat(int _rows, int _cols, int _type, void* _data, size_t _step)
^
/opt/local/include/opencv2/core/core.hpp:1961:11: note: member is declared here
MSize size;
^
/opt/local/include/opencv2/core/core.hpp:1933:23: note: 'cv::Mat::MSize'
declared here
struct CV_EXPORTS MSize
^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:126:13: error:
redefinition of 'Mat'
inline Mat::Mat(Size _size, int _type, void* _data, size_t _step)
^
/opt/local/include/opencv2/core/mat.hpp:151:13: note: previous definition is
here
inline Mat::Mat(Size _sz, int _type, void* _data, size_t _step)
^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:128:5: warning:
field 'step' will be initialized after field 'data' [-Wreorder]
step(_step), data((uchar*)_data), refcount(0),
^
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:126:13: error:
constructor for 'cv::Mat' must explicitly initialize the member 'size'
which does not have a default constructor
inline Mat::Mat(Size _size, int _type, void* _data, size_t _step)
^
/opt/local/include/opencv2/core/core.hpp:1961:11: note: member is declared here
MSize size;
^
/opt/local/include/opencv2/core/core.hpp:1933:23: note: 'cv::Mat::MSize'
declared here
struct CV_EXPORTS MSize
^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:146:13: error:
constructor for 'cv::Mat' must explicitly initialize the member 'size'
which does not have a default constructor
inline Mat::Mat(const Mat& m, const Range& rowRange, const Range& colRange)
^
/opt/local/include/opencv2/core/core.hpp:1961:11: note: member is declared here
MSize size;
^
/opt/local/include/opencv2/core/core.hpp:1933:23: note: 'cv::Mat::MSize'
declared here
struct CV_EXPORTS MSize
^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:149:10: error:
'operator=' is a protected member of 'cv::Mat::MStep'
step = m.step; refcount = m.refcount;
~~~~ ^ ~~~~~~
/opt/local/include/opencv2/core/core.hpp:1958:16: note: declared protected here
MStep& operator = (const MStep&);
^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:182:5: warning:
field 'step' will be initialized after field 'data' [-Wreorder]
step(m.step), data(m.data + roi.y*step), refcount(m.refcount),
^
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:180:13: error:
constructor for 'cv::Mat' must explicitly initialize the member 'size'
which does not have a default constructor
inline Mat::Mat(const Mat& m, const Rect& roi)
^
/opt/local/include/opencv2/core/core.hpp:1961:11: note: member is declared here
MSize size;
^
/opt/local/include/opencv2/core/core.hpp:1933:23: note: 'cv::Mat::MSize'
declared here
struct CV_EXPORTS MSize
^
In file included from package/extras/core/ndarray.cpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/ndarray.hpp:18:
In file included from ~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/core/opencv_headers.hpp:9:
~/Downloads/pyopencv-2.1.0.wr1.2.0/package/extras/sdopencv/sdcxmat.hpp:197:35: warning:
field 'step' will be initialized after field 'data' [-Wreorder]
rows(m->rows), cols(m->cols), step(m->step), data(m->data.ptr), refcount(0),
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
10 warnings and 20 errors generated.
error: command '/usr/bin/clang' failed with exit status 1