econsystems / opencv

Easy way to communicate with the camera using this OpenCV patch in c++
35 stars 17 forks source link

cap_gphoto2.cpp error #1

Open nqmartin opened 6 years ago

nqmartin commented 6 years ago

I get the error message below after following all instructions and running the "sudo make -j4 install" command. I tried this with both the 3.3.1 and 3.4.1 versions of opencv and ran all prerequisites before compiling. I am running Ubuntu 16.04 LTS on a 64-bit machine. Please provide guidance on how to correct. I'm trying to get opencv setup to work on my See3CAM_CU40 camera.

Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/videoio/src/cap_gphoto2.cpp.o In file included from /home/username/opencv/modules/core/include/opencv2/core/cvstd.hpp:1038:0, from /home/username/opencv/modules/core/include/opencv2/core/base.hpp:58, from /home/username/opencv/modules/core/include/opencv2/core.hpp:54, from /home/username/opencv/modules/videoio/include/opencv2/videoio.hpp:46, from /home/username/opencv/modules/videoio/src/precomp.hpp:45, from /home/username/opencv/modules/videoio/src/cap_gphoto2.cpp:28: /home/username/opencv/modules/core/include/opencv2/core/ptr.inl.hpp: In instantiation of ‘cv::Ptr cv::makePtr(const A1&) [with T = cv::gphoto2::DigitalCameraCapture; A1 = int]’: /home/username/opencv/modules/videoio/src/cap_gphoto2.cpp:1200:78: required from here /home/username/opencv/modules/core/include/opencv2/core/ptr.inl.hpp:307:28: error: invalid new-expression of abstract class type ‘cv::gphoto2::DigitalCameraCapture’ return Ptr(new T(a1)); ^ /home/username/opencv/modules/videoio/src/cap_gphoto2.cpp:131:7: note: because the following virtual functions are pure within ‘cv::gphoto2::DigitalCameraCapture’: class DigitalCameraCapture: public IVideoCapture ^ In file included from /home/username/opencv/modules/videoio/src/cap_gphoto2.cpp:28:0: /home/username/opencv/modules/videoio/src/precomp.hpp:191:16: note: virtual bool cv::IVideoCapture::getDevices(int&) virtual bool getDevices(int &) = 0; ^ /home/username/opencv/modules/videoio/src/precomp.hpp:192:16: note: virtual bool cv::IVideoCapture::getDeviceInfo(int, cv::String&, cv::String&, cv::String&, cv::String&) virtual bool getDeviceInfo(int , String &, String &, String &, String &) = 0; ^ /home/username/opencv/modules/videoio/src/precomp.hpp:193:16: note: virtual bool cv::IVideoCapture::getFormats(int&) virtual bool getFormats(int &) = 0; ^ /home/username/opencv/modules/videoio/src/precomp.hpp:194:16: note: virtual bool cv::IVideoCapture::getFormatType(int, cv::String&, int&, int&, int&) virtual bool getFormatType(int , String &, int &, int &, int &) = 0; ^ /home/username/opencv/modules/videoio/src/precomp.hpp:195:16: note: virtual bool cv::IVideoCapture::getVideoProperty(int, long int&, long int&, long int&, long int&, long int&, long int&, long int&) virtual bool getVideoProperty(int, long &, long &, long &, long &, long &, long &, long &) = 0; ^ /home/username/opencv/modules/videoio/src/precomp.hpp:196:16: note: virtual bool cv::IVideoCapture::setVideoProperty(int, long int, long int) virtual bool setVideoProperty(int, long, long) = 0; ^ In file included from /home/username/opencv/modules/core/include/opencv2/core/cvstd.hpp:1038:0, from /home/username/opencv/modules/core/include/opencv2/core/base.hpp:58, from /home/username/opencv/modules/core/include/opencv2/core.hpp:54, from /home/username/opencv/modules/videoio/include/opencv2/videoio.hpp:46, from /home/username/opencv/modules/videoio/src/precomp.hpp:45, from /home/username/opencv/modules/videoio/src/cap_gphoto2.cpp:28: /home/username/opencv/modules/core/include/opencv2/core/ptr.inl.hpp: In instantiation of ‘cv::Ptr cv::makePtr(const A1&) [with T = cv::gphoto2::DigitalCameraCapture; A1 = cv::String]’: /home/username/opencv/modules/videoio/src/cap_gphoto2.cpp:1215:83: required from here /home/username/opencv/modules/core/include/opencv2/core/ptr.inl.hpp:307:28: error: invalid new-expression of abstract class type ‘cv::gphoto2::DigitalCameraCapture’ return Ptr(new T(a1)); ^ modules/world/CMakeFiles/opencv_world.dir/build.make:6857: recipe for target 'modules/world/CMakeFiles/opencv_world.dir//videoio/src/cap_gphoto2.cpp.o' failed make[2]: *** [modules/world/CMakeFiles/opencv_world.dir//videoio/src/cap_gphoto2.cpp.o] Error 1 make[2]: Waiting for unfinished jobs.... CMakeFiles/Makefile2:1304: recipe for target 'modules/world/CMakeFiles/opencv_world.dir/all' failed make[1]: [modules/world/CMakeFiles/opencv_world.dir/all] Error 2 Makefile:160: recipe for target 'all' failed make: *** [all] Error 2

EdvardGrodem commented 5 years ago

I have the same problem. Any updates on the issue?

dongx3 commented 4 years ago

I have same issue as well.

vac commented 3 years ago

same here. ping.