jetsonhacks / buildOpenCVTX2

Build and install OpenCV for the NVIDIA Jetson TX2
MIT License
275 stars 154 forks source link

opencv build error #17

Open ncao8 opened 6 years ago

ncao8 commented 6 years ago

Hi, previously I had problem realizing realtime SSD detection with V4L2 format error which seems to be an opencv error. So I decided to reinstall opencv following the instruction. However, I got the following error at 75% completion:

[ 75%] Building CXX object modules/python2/CMakeFiles/opencv_python2.dir/__/src2/cv2.cpp.o In file included from /home/nvidia/opencv/modules/python/src2/cv2.cpp:1681:0: /home/nvidia/opencv/build/modules/python2/pyopencv_generated_types.h:2996:46: error: ‘Importer’ is not a member of ‘cv::dnn’ template<> PyObject pyopencv_from(const Ptr& r) ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_types.h:2996:46: error: ‘Importer’ is not a member of ‘cv::dnn’ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_types.h:2996:63: error: template argument 1 is invalid template<> PyObject pyopencv_from(const Ptr& r) ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_types.h:2996:22: error: redefinition of ‘PyObject pyopencv_from(const T&) [with T = int; PyObject = _object]’ template<> PyObject pyopencv_from(const Ptr& r) ^ /home/nvidia/opencv/modules/python/src2/cv2.cpp:796:11: note: ‘PyObject pyopencv_from(const T&) [with T = int; PyObject = _object]’ previously declared here PyObject pyopencv_from(const int& value) ^ In file included from /home/nvidia/opencv/modules/python/src2/cv2.cpp:1681:0: /home/nvidia/opencv/build/modules/python2/pyopencv_generated_types.h:3004:48: error: ‘Importer’ is not a member of ‘cv::dnn’ template<> bool pyopencv_to(PyObject src, Ptr& dst, const char name) ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_types.h:3004:48: error: ‘Importer’ is not a member of ‘cv::dnn’ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_types.h:3004:65: error: template argument 1 is invalid template<> bool pyopencv_to(PyObject src, Ptr& dst, const char name) ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_types.h:3004:17: error: redefinition of ‘bool pyopencv_to(PyObject, T&, const char) [with T = int; PyObject = _object]’ template<> bool pyopencv_to(PyObject src, Ptr& dst, const char name) ^ /home/nvidia/opencv/modules/python/src2/cv2.cpp:802:6: note: ‘bool pyopencv_to(PyObject, T&, const char) [with T = int; PyObject = _object]’ previously declared here bool pyopencv_to(PyObject obj, int& value, const char name) ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_types.h: In function ‘PyObject pyopencv_cv_dnn_dnn_Net_getLayerShapes(PyObject, PyObject, PyObject)’: /home/nvidia/opencv/build/modules/python2/pyopencv_generated_types.h:15291:96: error: no matching function for call to ‘cv::dnn::experimental_dnn_v4::Net::getLayerShapes(cv::dnn::experimental_dnn_v4::MatShape&, int&, vector_MatShape, vector_MatShape)’ ERRWRAP2(self->getLayerShapes(netInputShape, layerId, &inLayerShapes, &outLayerShapes)); ^ /home/nvidia/opencv/modules/python/src2/cv2.cpp:87:5: note: in definition of macro ‘ERRWRAP2’ expr; \ ^ In file included from /home/nvidia/opencv/build/modules/python2/pyopencv_generated_include.h:17:0, from /home/nvidia/opencv/modules/python/src2/cv2.cpp:22: /home/nvidia/opencv/modules/dnn/include/opencv2/dnn/dnn.hpp:521:14: note: candidate: void cv::dnn::experimental_dnn_v4::Net::getLayerShapes(const MatShape&, int, std::vector<std::vector >&, std::vector<std::vector >&) const void getLayerShapes(const MatShape& netInputShape, ^ /home/nvidia/opencv/modules/dnn/include/opencv2/dnn/dnn.hpp:521:14: note: no known conversion for argument 3 from ‘vector_MatShape {aka std::vector<std::vector >}’ to ‘std::vector<std::vector >&’ /home/nvidia/opencv/modules/dnn/include/opencv2/dnn/dnn.hpp:527:14: note: candidate: void cv::dnn::experimental_dnn_v4::Net::getLayerShapes(const std::vector<std::vector >&, int, std::vector<std::vector >&, std::vector<std::vector >&) const void getLayerShapes(const std::vector& netInputShapes, ^ /home/nvidia/opencv/modules/dnn/include/opencv2/dnn/dnn.hpp:527:14: note: no known conversion for argument 1 from ‘cv::dnn::experimental_dnn_v4::MatShape {aka std::vector}’ to ‘const std::vector<std::vector >&’ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_types.h:15312:97: error: no matching function for call to ‘cv::dnn::experimental_dnn_v4::Net::getLayerShapes(vector_MatShape&, int&, vector_MatShape, vector_MatShape)’ ERRWRAP2(self->getLayerShapes(netInputShapes, layerId, &inLayerShapes, &outLayerShapes)); ^ /home/nvidia/opencv/modules/python/src2/cv2.cpp:87:5: note: in definition of macro ‘ERRWRAP2’ expr; \ ^ In file included from /home/nvidia/opencv/build/modules/python2/pyopencv_generated_include.h:17:0, from /home/nvidia/opencv/modules/python/src2/cv2.cpp:22: /home/nvidia/opencv/modules/dnn/include/opencv2/dnn/dnn.hpp:521:14: note: candidate: void cv::dnn::experimental_dnn_v4::Net::getLayerShapes(const MatShape&, int, std::vector<std::vector >&, std::vector<std::vector >&) const void getLayerShapes(const MatShape& netInputShape, ^ /home/nvidia/opencv/modules/dnn/include/opencv2/dnn/dnn.hpp:521:14: note: no known conversion for argument 1 from ‘vector_MatShape {aka std::vector<std::vector >}’ to ‘const MatShape& {aka const std::vector&}’ /home/nvidia/opencv/modules/dnn/include/opencv2/dnn/dnn.hpp:527:14: note: candidate: void cv::dnn::experimental_dnn_v4::Net::getLayerShapes(const std::vector<std::vector >&, int, std::vector<std::vector >&, std::vector<std::vector >&) const void getLayerShapes(const std::vector& netInputShapes, ^ /home/nvidia/opencv/modules/dnn/include/opencv2/dnn/dnn.hpp:527:14: note: no known conversion for argument 3 from ‘vector_MatShape {aka std::vector<std::vector >}’ to ‘std::vector<std::vector >&’ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_types.h: In function ‘PyObject pyopencv_cv_dnn_dnn_Net_getLayersShapes(PyObject, PyObject, PyObject)’: /home/nvidia/opencv/build/modules/python2/pyopencv_generated_types.h:15390:103: error: no matching function for call to ‘cv::dnn::experimental_dnn_v4::Net::getLayersShapes(vector_MatShape&, vector_int, vector_vector_MatShape, vector_vector_MatShape)’ ERRWRAP2(self->getLayersShapes(netInputShapes, &layersIds, &inLayersShapes, &outLayersShapes)); ^ /home/nvidia/opencv/modules/python/src2/cv2.cpp:87:5: note: in definition of macro ‘ERRWRAP2’ expr; \ ^ In file included from /home/nvidia/opencv/build/modules/python2/pyopencv_generated_include.h:17:0, from /home/nvidia/opencv/modules/python/src2/cv2.cpp:22: /home/nvidia/opencv/modules/dnn/include/opencv2/dnn/dnn.hpp:501:22: note: candidate: void cv::dnn::experimental_dnn_v4::Net::getLayersShapes(const std::vector<std::vector >&, std::vector&, std::vector<std::vector<std::vector > >&, std::vector<std::vector<std::vector > >&) const CV_WRAP void getLayersShapes(const std::vector& netInputShapes, ^ /home/nvidia/opencv/modules/dnn/include/opencv2/dnn/dnn.hpp:501:22: note: no known conversion for argument 2 from ‘vector_int {aka std::vector}’ to ‘std::vector&’ /home/nvidia/opencv/modules/dnn/include/opencv2/dnn/dnn.hpp:507:22: note: candidate: void cv::dnn::experimental_dnn_v4::Net::getLayersShapes(const MatShape&, std::vector&, std::vector<std::vector<std::vector > >&, std::vector<std::vector<std::vector > >&) const CV_WRAP void getLayersShapes(const MatShape& netInputShape, ^ /home/nvidia/opencv/modules/dnn/include/opencv2/dnn/dnn.hpp:507:22: note: no known conversion for argument 1 from ‘vector_MatShape {aka std::vector<std::vector >}’ to ‘const MatShape& {aka const std::vector&}’ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_types.h:15413:102: error: no matching function for call to ‘cv::dnn::experimental_dnn_v4::Net::getLayersShapes(cv::dnn::experimental_dnn_v4::MatShape&, vector_int, vector_vector_MatShape, vector_vector_MatShape)’ ERRWRAP2(self->getLayersShapes(netInputShape, &layersIds, &inLayersShapes, &outLayersShapes)); ^ /home/nvidia/opencv/modules/python/src2/cv2.cpp:87:5: note: in definition of macro ‘ERRWRAP2’ expr; \ ^ In file included from /home/nvidia/opencv/build/modules/python2/pyopencv_generated_include.h:17:0, from /home/nvidia/opencv/modules/python/src2/cv2.cpp:22: /home/nvidia/opencv/modules/dnn/include/opencv2/dnn/dnn.hpp:501:22: note: candidate: void cv::dnn::experimental_dnn_v4::Net::getLayersShapes(const std::vector<std::vector >&, std::vector&, std::vector<std::vector<std::vector > >&, std::vector<std::vector<std::vector > >&) const CV_WRAP void getLayersShapes(const std::vector& netInputShapes, ^ /home/nvidia/opencv/modules/dnn/include/opencv2/dnn/dnn.hpp:501:22: note: no known conversion for argument 1 from ‘cv::dnn::experimental_dnn_v4::MatShape {aka std::vector}’ to ‘const std::vector<std::vector >&’ /home/nvidia/opencv/modules/dnn/include/opencv2/dnn/dnn.hpp:507:22: note: candidate: void cv::dnn::experimental_dnn_v4::Net::getLayersShapes(const MatShape&, std::vector&, std::vector<std::vector<std::vector > >&, std::vector<std::vector<std::vector > >&) const CV_WRAP void getLayersShapes(const MatShape& netInputShape, ^ /home/nvidia/opencv/modules/dnn/include/opencv2/dnn/dnn.hpp:507:22: note: no known conversion for argument 2 from ‘vector_int {aka std::vector}’ to ‘std::vector&’ In file included from /home/nvidia/opencv/modules/python/src2/cv2.cpp:1681:0: /home/nvidia/opencv/build/modules/python2/pyopencv_generated_types.h: In function ‘PyObject pyopencv_cv_dnn_dnn_Importer_populateNet(PyObject, PyObject, PyObject)’: /home/nvidia/opencv/build/modules/python2/pyopencv_generated_types.h:15747:5: error: ‘Importer’ is not a member of ‘cv::dnn’ cv::dnn::Importer self = NULL; ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_types.h:15747:24: error: ‘self’ was not declared in this scope cv::dnn::Importer self = NULL; ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_types.h:15749:40: error: ‘Importer’ in namespace ‘cv::dnn’ does not name a type self = dynamic_cast<cv::dnn::Importer>(((pyopencv_dnn_Importer_t)self)->v.get()); ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_types.h:15749:48: error: expected ‘>’ before ‘’ token self = dynamic_cast<cv::dnn::Importer>(((pyopencv_dnn_Importer_t)self)->v.get()); ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_types.h:15749:48: error: expected ‘(’ before ‘’ token /home/nvidia/opencv/build/modules/python2/pyopencv_generated_types.h:15749:49: error: expected primary-expression before ‘>’ token self = dynamic_cast<cv::dnn::Importer>(((pyopencv_dnn_Importer_t)self)->v.get()); ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_types.h:15749:93: error: expected ‘)’ before ‘;’ token self = dynamic_cast<cv::dnn::Importer>(((pyopencv_dnn_Importer_t)self)->v.get()); ^ In file included from /home/nvidia/opencv/modules/python/src2/cv2.cpp:1682:0: /home/nvidia/opencv/build/modules/python2/pyopencv_generated_funcs.h: In function ‘PyObject pyopencv_cv_dnn_createCaffeImporter(PyObject, PyObject, PyObject)’: /home/nvidia/opencv/build/modules/python2/pyopencv_generated_funcs.h:16785:9: error: ‘Importer’ was not declared in this scope Ptr retval; ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_funcs.h:16785:17: error: template argument 1 is invalid Ptr retval; ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_funcs.h:16792:27: error: ‘createCaffeImporter’ is not a member of ‘cv::dnn’ ERRWRAP2(retval = cv::dnn::createCaffeImporter(prototxt, caffeModel)); ^ /home/nvidia/opencv/modules/python/src2/cv2.cpp:87:5: note: in definition of macro ‘ERRWRAP2’ expr; \ ^ In file included from /home/nvidia/opencv/modules/python/src2/cv2.cpp:1682:0: /home/nvidia/opencv/build/modules/python2/pyopencv_generated_funcs.h: In function ‘PyObject pyopencv_cv_dnn_createTensorflowImporter(PyObject, PyObject, PyObject)’: /home/nvidia/opencv/build/modules/python2/pyopencv_generated_funcs.h:16805:9: error: ‘Importer’ was not declared in this scope Ptr retval; ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_funcs.h:16805:17: error: template argument 1 is invalid Ptr retval; ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_funcs.h:16811:27: error: ‘createTensorflowImporter’ is not a member of ‘cv::dnn’ ERRWRAP2(retval = cv::dnn::createTensorflowImporter(model)); ^ /home/nvidia/opencv/modules/python/src2/cv2.cpp:87:5: note: in definition of macro ‘ERRWRAP2’ expr; \ ^ In file included from /home/nvidia/opencv/modules/python/src2/cv2.cpp:1682:0: /home/nvidia/opencv/build/modules/python2/pyopencv_generated_funcs.h: In function ‘PyObject pyopencv_cv_dnn_createTorchImporter(PyObject, PyObject, PyObject)’: /home/nvidia/opencv/build/modules/python2/pyopencv_generated_funcs.h:16825:9: error: ‘Importer’ was not declared in this scope Ptr retval; ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_funcs.h:16825:17: error: template argument 1 is invalid Ptr retval; ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_funcs.h:16831:27: error: ‘createTorchImporter’ is not a member of ‘cv::dnn’ ERRWRAP2(retval = cv::dnn::createTorchImporter(filename, isBinary)); ^ /home/nvidia/opencv/modules/python/src2/cv2.cpp:87:5: note: in definition of macro ‘ERRWRAP2’ expr; \ ^ In file included from /home/nvidia/opencv/modules/python/src2/cv2.cpp:1743:0: /home/nvidia/opencv/build/modules/python2/pyopencv_generated_ns_reg.h: At global scope: /home/nvidia/opencv/build/modules/python2/pyopencv_generated_ns_reg.h:1848:26: error: ‘MAX’ is not a member of ‘cv::dnn::experimental_dnn_v4::EltwiseLayer’ {"EltwiseLayer_MAX", cv::dnn::EltwiseLayer::MAX}, ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_ns_reg.h:1849:27: error: ‘MAX’ is not a member of ‘cv::dnn::experimental_dnn_v4::EltwiseLayer’ {"ELTWISE_LAYER_MAX", cv::dnn::EltwiseLayer::MAX}, ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_ns_reg.h:1850:27: error: ‘PROD’ is not a member of ‘cv::dnn::experimental_dnn_v4::EltwiseLayer’ {"EltwiseLayer_PROD", cv::dnn::EltwiseLayer::PROD}, ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_ns_reg.h:1851:28: error: ‘PROD’ is not a member of ‘cv::dnn::experimental_dnn_v4::EltwiseLayer’ {"ELTWISE_LAYER_PROD", cv::dnn::EltwiseLayer::PROD}, ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_ns_reg.h:1852:26: error: ‘SUM’ is not a member of ‘cv::dnn::experimental_dnn_v4::EltwiseLayer’ {"EltwiseLayer_SUM", cv::dnn::EltwiseLayer::SUM}, ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_ns_reg.h:1853:27: error: ‘SUM’ is not a member of ‘cv::dnn::experimental_dnn_v4::EltwiseLayer’ {"ELTWISE_LAYER_SUM", cv::dnn::EltwiseLayer::SUM}, ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_ns_reg.h:1854:30: error: ‘CHANNEL_NRM’ is not a member of ‘cv::dnn::experimental_dnn_v4::LRNLayer’ {"LRNLayer_CHANNEL_NRM", cv::dnn::LRNLayer::CHANNEL_NRM}, ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_ns_reg.h:1855:30: error: ‘CHANNEL_NRM’ is not a member of ‘cv::dnn::experimental_dnn_v4::LRNLayer’ {"LRNLAYER_CHANNEL_NRM", cv::dnn::LRNLayer::CHANNEL_NRM}, ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_ns_reg.h:1856:30: error: ‘SPATIAL_NRM’ is not a member of ‘cv::dnn::experimental_dnn_v4::LRNLayer’ {"LRNLayer_SPATIAL_NRM", cv::dnn::LRNLayer::SPATIAL_NRM}, ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_ns_reg.h:1857:30: error: ‘SPATIAL_NRM’ is not a member of ‘cv::dnn::experimental_dnn_v4::LRNLayer’ {"LRNLAYER_SPATIAL_NRM", cv::dnn::LRNLayer::SPATIAL_NRM}, ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_ns_reg.h:1858:26: error: ‘AVE’ is not a member of ‘cv::dnn::experimental_dnn_v4::PoolingLayer’ {"PoolingLayer_AVE", cv::dnn::PoolingLayer::AVE}, ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_ns_reg.h:1859:27: error: ‘AVE’ is not a member of ‘cv::dnn::experimental_dnn_v4::PoolingLayer’ {"POOLING_LAYER_AVE", cv::dnn::PoolingLayer::AVE}, ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_ns_reg.h:1860:26: error: ‘MAX’ is not a member of ‘cv::dnn::experimental_dnn_v4::PoolingLayer’ {"PoolingLayer_MAX", cv::dnn::PoolingLayer::MAX}, ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_ns_reg.h:1861:27: error: ‘MAX’ is not a member of ‘cv::dnn::experimental_dnn_v4::PoolingLayer’ {"POOLING_LAYER_MAX", cv::dnn::PoolingLayer::MAX}, ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_ns_reg.h:1862:33: error: ‘STOCHASTIC’ is not a member of ‘cv::dnn::experimental_dnn_v4::PoolingLayer’ {"PoolingLayer_STOCHASTIC", cv::dnn::PoolingLayer::STOCHASTIC}, ^ /home/nvidia/opencv/build/modules/python2/pyopencv_generated_ns_reg.h:1863:34: error: ‘STOCHASTIC’ is not a member of ‘cv::dnn::experimental_dnn_v4::PoolingLayer’ {"POOLING_LAYER_STOCHASTIC", cv::dnn::PoolingLayer::STOCHASTIC}, ^ /home/nvidia/opencv/build/modules/python_bindings_generator/pyopencv_generated_type_publish.h: In function ‘void initcv2()’: /home/nvidia/opencv/build/modules/python_bindings_generator/pyopencv_generated_type_publish.h:24:37: error: ‘pyopencv_ml_ANN_MLP_ANNEAL_Type’ was not declared in this scope PUBLISH_OBJECT("ml_ANN_MLP_ANNEAL", pyopencv_ml_ANN_MLP_ANNEAL_Type); ^ /home/nvidia/opencv/modules/python/src2/cv2.cpp:1806:75: note: in definition of macro ‘PUBLISH_OBJECT’

define PUBLISH_OBJECT(name, type) _Py_INC_REFTOTAL _Py_REF_DEBUG_COMMA (&type)->ob_refcnt++;\

                                                                       ^

/home/nvidia/opencv/build/modules/python_bindings_generator/pyopencv_generated_type_publish.h:85:48: error: ‘pyopencv_CirclesGridFinderParameters2_Type’ was not declared in this scope PUBLISH_OBJECT("CirclesGridFinderParameters2", pyopencv_CirclesGridFinderParameters2_Type); ^ /home/nvidia/opencv/modules/python/src2/cv2.cpp:1806:75: note: in definition of macro ‘PUBLISH_OBJECT’

define PUBLISH_OBJECT(name, type) _Py_INC_REFTOTAL _Py_REF_DEBUG_COMMA (&type)->ob_refcnt++;\

                                                                       ^

modules/python2/CMakeFiles/opencv_python2.dir/build.make:62: recipe for target 'modules/python2/CMakeFiles/opencv_python2.dir/__/src2/cv2.cpp.o' failed make[2]: [modules/python2/CMakeFiles/opencv_python2.dir/__/src2/cv2.cpp.o] Error 1 CMakeFiles/Makefile2:6244: recipe for target 'modules/python2/CMakeFiles/opencv_python2.dir/all' failed make[1]: [modules/python2/CMakeFiles/opencv_python2.dir/all] Error 2 Makefile:160: recipe for target 'all' failed make: *** [all] Error 2 Make did not successfully build Please fix issues and retry build


Previously I installed opencv3.4.0 myself following other tutorial. And it seems in my home directory, there were opencvtegra folders installed before (there was another collegue working on this Jetson TX2 before). I unistalled opencv by "sudo apt-get purge libopencv*" and removed opencvtegra foler. Any idea what might be the problem?

Thanks in advance!

zhangruitianNB commented 5 years ago

the same problem,Did u slove it?

jiapei100 commented 5 years ago

Same issue here... OpenCV 4.1.0 ...