orgicus / ofxCvPiCam

ofxCvPiCam is a minimal grabber for the Raspberry Pi Camera module. It uses the MMAL interface to grab frames and convert them the cv::Mat type which can be processed using the typical opencv calls.
Other
49 stars 10 forks source link

Compile error on Rpi 3B+ Rasbian #13

Open RuolunWeng opened 5 years ago

RuolunWeng commented 5 years ago

Dear ofxCvPiCam User:

I want to compile ofxCvPiCam (eg: example-ofxCvPiCamSimple) on my Raspberry 3B+, it outpouts error like this, any idea? Thanks!!

pi@raspberrypi:~/openFrameworks/apps/myApps/example-ofxCvPiCamSimple $ make
HOST_OS=Linux
checking pkg-config libraries:   cairo zlib gstreamer-app-1.0 gstreamer-1.0 gstreamer-video-1.0 gstreamer-base-1.0 libudev freetype2 fontconfig sndfile openal libcurl glfw3 rtaudio gtk+-3.0 libmpg123 
with PKG_CONFIG_LIBDIR=
Compiling OF library for Release
make[1]: Entering directory '/home/pi/openFrameworks/libs/openFrameworksCompiled/project'
HOST_OS=Linux
checking pkg-config libraries:   cairo zlib gstreamer-app-1.0 gstreamer-1.0 gstreamer-video-1.0 gstreamer-base-1.0 libudev freetype2 fontconfig sndfile openal libcurl glfw3 rtaudio gtk+-3.0 libmpg123 
with PKG_CONFIG_LIBDIR=
HOST_OS=Linux
checking pkg-config libraries:   cairo zlib gstreamer-app-1.0 gstreamer-1.0 gstreamer-video-1.0 gstreamer-base-1.0 libudev freetype2 fontconfig sndfile openal libcurl glfw3 rtaudio gtk+-3.0 libmpg123 
with PKG_CONFIG_LIBDIR=
HOST_OS=Linux
checking pkg-config libraries:   cairo zlib gstreamer-app-1.0 gstreamer-1.0 gstreamer-video-1.0 gstreamer-base-1.0 libudev freetype2 fontconfig sndfile openal libcurl glfw3 rtaudio gtk+-3.0 libmpg123 
with PKG_CONFIG_LIBDIR=
Done!
make[1]: Leaving directory '/home/pi/openFrameworks/libs/openFrameworksCompiled/project'

Compiling example-ofxCvPiCamSimple for Release
make[1]: Entering directory '/home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple'
HOST_OS=Linux
checking pkg-config libraries:   cairo zlib gstreamer-app-1.0 gstreamer-1.0 gstreamer-video-1.0 gstreamer-base-1.0 libudev freetype2 fontconfig sndfile openal libcurl glfw3 rtaudio gtk+-3.0 libmpg123 
with PKG_CONFIG_LIBDIR=
cat: obj/linuxarmv6l/Release/.compiler_flags: No such file or directory
Compiling /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/main.cpp
g++ -c -O3 -DNDEBUG -Wall -Werror=return-type -std=c++14 -DGCC_HAS_REGEX -march=armv6 -mfpu=vfp -mfloat-abi=hard -fPIC -ftree-vectorize -Wno-psabi -pipe -DOF_USING_GTK -DOF_USING_GTK -DOF_USING_MPG123 -DTARGET_RASPBERRY_PI -DSTANDALONE -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -DHAVE_LIBOPENMAX=2 -DOMX -DOMX_SKIP64BIT -DUSE_EXTERNAL_OMX -DHAVE_LIBBCM_HOST -DUSE_EXTERNAL_LIBBCM_HOST -DUSE_VCHIQ_ARM  -I/opt/vc/include -I/opt/vc/include/IL -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -pthread -D_REENTRANT -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/orc-0.4 -I/usr/include/gstreamer-1.0 -I/usr/include/AL -I/usr/include/arm-linux-gnueabihf -I/usr/include/rtaudio -I/usr/include/alsa -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/libdrm -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/uuid -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/opencv -I../../../libs/glm/include -I../../../libs/glm/include/glm -I../../../libs/glm/include/glm/simd -I../../../libs/glm/include/glm/gtc -I../../../libs/glm/include/glm/gtx -I../../../libs/glm/include/glm/detail -I../../../libs/json/include -I../../../libs/kiss/include -I../../../libs/tess2/include -I../../../libs/utf8/include -I../../../libs/utf8/include/utf8 -I../../../libs/openFrameworks -I../../../libs/openFrameworks/types -I../../../libs/openFrameworks/events -I../../../libs/openFrameworks/sound -I../../../libs/openFrameworks/app -I../../../libs/openFrameworks/gl -I../../../libs/openFrameworks/communication -I../../../libs/openFrameworks/utils -I../../../libs/openFrameworks/3d -I../../../libs/openFrameworks/math -I../../../libs/openFrameworks/graphics -I../../../libs/openFrameworks/video -pthread -D_REENTRANT -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/orc-0.4 -I/usr/include/gstreamer-1.0 -I/usr/include/AL -I/usr/include/arm-linux-gnueabihf -I/usr/include/rtaudio -I/usr/include/alsa -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/libdrm -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/uuid -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/opencv -I/home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src -I/home/pi/openFrameworks/addons/ofxOpenCv/src -I/home/pi/openFrameworks/addons/ofxCv/libs/ofxCv/include -I/home/pi/openFrameworks/addons/ofxCv/libs/CLD/include/CLD -I/home/pi/openFrameworks/addons/ofxCv/src -Isrc -I/home/pi/openFrameworks/addons/ofxCvPiCam/src -I/home/pi/openFrameworks/addons/ofxCvPiCam/libs -I/home/pi/openFrameworks/addons/ofxCvPiCam/libs/mmal -I/home/pi/openFrameworks/addons/ofxCvPiCam/libs/mmal/src -I/home/pi/openFrameworks/addons/ofxCvPiCam/libs/mmal/src/interface -I/home/pi/openFrameworks/addons/ofxCvPiCam/libs/mmal/src/interface/vchiq_arm -I/home/pi/openFrameworks/addons/ofxCvPiCam/libs/mmal/src/interface/mmal -I/home/pi/openFrameworks/addons/ofxCvPiCam/libs/mmal/src/interface/mmal/util -I/home/pi/openFrameworks/addons/ofxCvPiCam/libs/mmal/src/interface/mmal/core -I/home/pi/openFrameworks/addons/ofxCvPiCam/libs/mmal/src/interface/mmal/vc -MMD -MP -MF obj/linuxarmv6l/Release/src/main.d -MT obj/linuxarmv6l/Release/src/main.o -o obj/linuxarmv6l/Release/src/main.o -c /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/main.cpp
In file included from ../../../libs/glm/include/glm/./gtc/packing.hpp:579,
                 from ../../../libs/glm/include/glm/ext.hpp:48,
                 from ../../../libs/openFrameworks/math/ofVectorMath.h:21,
                 from ../../../libs/openFrameworks/ofMain.h:37,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/main.cpp:1:
../../../libs/glm/include/glm/./gtc/packing.inl: In function ‘glm::vec2 glm::unpackUnorm2x8(glm::uint16)’:
../../../libs/glm/include/glm/./gtc/packing.inl:377:37: warning: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘glm::u8vec2’ {aka ‘struct glm::tvec2<unsigned char, (glm::precision)0>’} from an array of ‘glm::uint16’ {aka ‘short unsigned int’} [-Wclass-memaccess]
   memcpy(&Unpack, &p, sizeof(Unpack));
                                     ^
In file included from ../../../libs/glm/include/glm/vec2.hpp:6,
                 from ../../../libs/openFrameworks/events/ofEvents.h:8,
                 from ../../../libs/openFrameworks/utils/ofURLFileLoader.h:3,
                 from ../../../libs/openFrameworks/ofMain.h:11,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/main.cpp:1:
../../../libs/glm/include/glm/detail/type_vec2.hpp:19:9: note: ‘glm::u8vec2’ {aka ‘struct glm::tvec2<unsigned char, (glm::precision)0>’} declared here
  struct tvec2
         ^~~~~
In file included from ../../../libs/glm/include/glm/./gtc/packing.hpp:579,
                 from ../../../libs/glm/include/glm/ext.hpp:48,
                 from ../../../libs/openFrameworks/math/ofVectorMath.h:21,
                 from ../../../libs/openFrameworks/ofMain.h:37,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/main.cpp:1:
../../../libs/glm/include/glm/./gtc/packing.inl: In function ‘glm::vec2 glm::unpackSnorm2x8(glm::uint16)’:
../../../libs/glm/include/glm/./gtc/packing.inl:409:37: warning: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘glm::i8vec2’ {aka ‘struct glm::tvec2<signed char, (glm::precision)0>’} from an array of ‘glm::uint16’ {aka ‘short unsigned int’} [-Wclass-memaccess]
   memcpy(&Unpack, &p, sizeof(Unpack));
                                     ^
In file included from ../../../libs/glm/include/glm/vec2.hpp:6,
                 from ../../../libs/openFrameworks/events/ofEvents.h:8,
                 from ../../../libs/openFrameworks/utils/ofURLFileLoader.h:3,
                 from ../../../libs/openFrameworks/ofMain.h:11,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/main.cpp:1:
../../../libs/glm/include/glm/detail/type_vec2.hpp:19:9: note: ‘glm::i8vec2’ {aka ‘struct glm::tvec2<signed char, (glm::precision)0>’} declared here
  struct tvec2
         ^~~~~
In file included from ../../../libs/glm/include/glm/./gtc/packing.hpp:579,
                 from ../../../libs/glm/include/glm/ext.hpp:48,
                 from ../../../libs/openFrameworks/math/ofVectorMath.h:21,
                 from ../../../libs/openFrameworks/ofMain.h:37,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/main.cpp:1:
../../../libs/glm/include/glm/./gtc/packing.inl: In function ‘glm::vec4 glm::unpackUnorm4x16(glm::uint64)’:
../../../libs/glm/include/glm/./gtc/packing.inl:437:37: warning: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘glm::u16vec4’ {aka ‘struct glm::tvec4<short unsigned int, (glm::precision)0>’} from an array of ‘glm::uint64’ {aka ‘long long unsigned int’} [-Wclass-memaccess]
   memcpy(&Unpack, &p, sizeof(Unpack));
                                     ^
In file included from ../../../libs/glm/include/glm/vec4.hpp:6,
                 from ../../../libs/openFrameworks/math/ofVec4f.h:8,
                 from ../../../libs/openFrameworks/math/ofVec3f.h:5,
                 from ../../../libs/openFrameworks/types/ofPoint.h:3,
                 from ../../../libs/openFrameworks/types/ofParameter.h:5,
                 from ../../../libs/openFrameworks/utils/ofJson.h:4,
                 from ../../../libs/openFrameworks/ofMain.h:21,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/main.cpp:1:
../../../libs/glm/include/glm/detail/type_vec4.hpp:19:9: note: ‘glm::u16vec4’ {aka ‘struct glm::tvec4<short unsigned int, (glm::precision)0>’} declared here
  struct tvec4
         ^~~~~
In file included from ../../../libs/glm/include/glm/./gtc/packing.hpp:579,
                 from ../../../libs/glm/include/glm/ext.hpp:48,
                 from ../../../libs/openFrameworks/math/ofVectorMath.h:21,
                 from ../../../libs/openFrameworks/ofMain.h:37,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/main.cpp:1:
../../../libs/glm/include/glm/./gtc/packing.inl: In function ‘glm::vec4 glm::unpackSnorm4x16(glm::uint64)’:
../../../libs/glm/include/glm/./gtc/packing.inl:469:37: warning: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘glm::i16vec4’ {aka ‘struct glm::tvec4<short int, (glm::precision)0>’} from an array of ‘glm::uint64’ {aka ‘long long unsigned int’} [-Wclass-memaccess]
   memcpy(&Unpack, &p, sizeof(Unpack));
                                     ^
In file included from ../../../libs/glm/include/glm/vec4.hpp:6,
                 from ../../../libs/openFrameworks/math/ofVec4f.h:8,
                 from ../../../libs/openFrameworks/math/ofVec3f.h:5,
                 from ../../../libs/openFrameworks/types/ofPoint.h:3,
                 from ../../../libs/openFrameworks/types/ofParameter.h:5,
                 from ../../../libs/openFrameworks/utils/ofJson.h:4,
                 from ../../../libs/openFrameworks/ofMain.h:21,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/main.cpp:1:
../../../libs/glm/include/glm/detail/type_vec4.hpp:19:9: note: ‘glm::i16vec4’ {aka ‘struct glm::tvec4<short int, (glm::precision)0>’} declared here
  struct tvec4
         ^~~~~
In file included from ../../../libs/glm/include/glm/./gtc/packing.hpp:579,
                 from ../../../libs/glm/include/glm/ext.hpp:48,
                 from ../../../libs/openFrameworks/math/ofVectorMath.h:21,
                 from ../../../libs/openFrameworks/ofMain.h:37,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/main.cpp:1:
../../../libs/glm/include/glm/./gtc/packing.inl: In function ‘glm::vec4 glm::unpackHalf4x16(glm::uint64)’:
../../../libs/glm/include/glm/./gtc/packing.inl:505:37: warning: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘glm::i16vec4’ {aka ‘struct glm::tvec4<short int, (glm::precision)0>’} from an array of ‘glm::uint64’ {aka ‘long long unsigned int’} [-Wclass-memaccess]
   memcpy(&Unpack, &v, sizeof(Unpack));
                                     ^
In file included from ../../../libs/glm/include/glm/vec4.hpp:6,
                 from ../../../libs/openFrameworks/math/ofVec4f.h:8,
                 from ../../../libs/openFrameworks/math/ofVec3f.h:5,
                 from ../../../libs/openFrameworks/types/ofPoint.h:3,
                 from ../../../libs/openFrameworks/types/ofParameter.h:5,
                 from ../../../libs/openFrameworks/utils/ofJson.h:4,
                 from ../../../libs/openFrameworks/ofMain.h:21,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/main.cpp:1:
../../../libs/glm/include/glm/detail/type_vec4.hpp:19:9: note: ‘glm::i16vec4’ {aka ‘struct glm::tvec4<short int, (glm::precision)0>’} declared here
  struct tvec4
         ^~~~~
In file included from /home/pi/openFrameworks/addons/ofxCv/src/ofxCv.h:23,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.h:4,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/main.cpp:2:
/home/pi/openFrameworks/addons/ofxCv/libs/ofxCv/include/ofxCv/Tracker.h: In member function ‘virtual const std::vector<unsigned int>& ofxCv::RectTracker::track(const std::vector<cv::Rect_<int> >&)’:
/home/pi/openFrameworks/addons/ofxCv/libs/ofxCv/include/ofxCv/Tracker.h:326:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<unsigned int>::size_type’ {aka ‘unsigned int’} [-Wsign-compare]
    for(int i = 0; i < labels.size(); i++) {
                   ~~^~~~~~~~~~~~~~~
In file included from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.h:5,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/main.cpp:2:
/home/pi/openFrameworks/addons/ofxCvPiCam/src/ofxCvPiCam.h: At global scope:
/home/pi/openFrameworks/addons/ofxCvPiCam/src/ofxCvPiCam.h:200:13: warning: ‘void color_callback(MMAL_PORT_T*, MMAL_BUFFER_HEADER_T*)’ declared ‘static’ but never defined [-Wunused-function]
 static void color_callback(MMAL_PORT_T *, MMAL_BUFFER_HEADER_T *);
             ^~~~~~~~~~~~~~
/home/pi/openFrameworks/addons/ofxCvPiCam/src/ofxCvPiCam.h:201:13: warning: ‘void gray_callback(MMAL_PORT_T*, MMAL_BUFFER_HEADER_T*)’ declared ‘static’ but never defined [-Wunused-function]
 static void gray_callback(MMAL_PORT_T *, MMAL_BUFFER_HEADER_T *);
             ^~~~~~~~~~~~~
Compiling /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.cpp
g++ -c -O3 -DNDEBUG -Wall -Werror=return-type -std=c++14 -DGCC_HAS_REGEX -march=armv6 -mfpu=vfp -mfloat-abi=hard -fPIC -ftree-vectorize -Wno-psabi -pipe -DOF_USING_GTK -DOF_USING_GTK -DOF_USING_MPG123 -DTARGET_RASPBERRY_PI -DSTANDALONE -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -DHAVE_LIBOPENMAX=2 -DOMX -DOMX_SKIP64BIT -DUSE_EXTERNAL_OMX -DHAVE_LIBBCM_HOST -DUSE_EXTERNAL_LIBBCM_HOST -DUSE_VCHIQ_ARM  -I/opt/vc/include -I/opt/vc/include/IL -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -pthread -D_REENTRANT -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/orc-0.4 -I/usr/include/gstreamer-1.0 -I/usr/include/AL -I/usr/include/arm-linux-gnueabihf -I/usr/include/rtaudio -I/usr/include/alsa -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/libdrm -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/uuid -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/opencv -I../../../libs/glm/include -I../../../libs/glm/include/glm -I../../../libs/glm/include/glm/simd -I../../../libs/glm/include/glm/gtc -I../../../libs/glm/include/glm/gtx -I../../../libs/glm/include/glm/detail -I../../../libs/json/include -I../../../libs/kiss/include -I../../../libs/tess2/include -I../../../libs/utf8/include -I../../../libs/utf8/include/utf8 -I../../../libs/openFrameworks -I../../../libs/openFrameworks/types -I../../../libs/openFrameworks/events -I../../../libs/openFrameworks/sound -I../../../libs/openFrameworks/app -I../../../libs/openFrameworks/gl -I../../../libs/openFrameworks/communication -I../../../libs/openFrameworks/utils -I../../../libs/openFrameworks/3d -I../../../libs/openFrameworks/math -I../../../libs/openFrameworks/graphics -I../../../libs/openFrameworks/video -pthread -D_REENTRANT -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/orc-0.4 -I/usr/include/gstreamer-1.0 -I/usr/include/AL -I/usr/include/arm-linux-gnueabihf -I/usr/include/rtaudio -I/usr/include/alsa -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/libdrm -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/uuid -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/opencv -I/home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src -I/home/pi/openFrameworks/addons/ofxOpenCv/src -I/home/pi/openFrameworks/addons/ofxCv/libs/ofxCv/include -I/home/pi/openFrameworks/addons/ofxCv/libs/CLD/include/CLD -I/home/pi/openFrameworks/addons/ofxCv/src -Isrc -I/home/pi/openFrameworks/addons/ofxCvPiCam/src -I/home/pi/openFrameworks/addons/ofxCvPiCam/libs -I/home/pi/openFrameworks/addons/ofxCvPiCam/libs/mmal -I/home/pi/openFrameworks/addons/ofxCvPiCam/libs/mmal/src -I/home/pi/openFrameworks/addons/ofxCvPiCam/libs/mmal/src/interface -I/home/pi/openFrameworks/addons/ofxCvPiCam/libs/mmal/src/interface/vchiq_arm -I/home/pi/openFrameworks/addons/ofxCvPiCam/libs/mmal/src/interface/mmal -I/home/pi/openFrameworks/addons/ofxCvPiCam/libs/mmal/src/interface/mmal/util -I/home/pi/openFrameworks/addons/ofxCvPiCam/libs/mmal/src/interface/mmal/core -I/home/pi/openFrameworks/addons/ofxCvPiCam/libs/mmal/src/interface/mmal/vc -MMD -MP -MF obj/linuxarmv6l/Release/src/testApp.d -MT obj/linuxarmv6l/Release/src/testApp.o -o obj/linuxarmv6l/Release/src/testApp.o -c /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.cpp
In file included from ../../../libs/glm/include/glm/./gtc/packing.hpp:579,
                 from ../../../libs/glm/include/glm/ext.hpp:48,
                 from ../../../libs/openFrameworks/math/ofVectorMath.h:21,
                 from ../../../libs/openFrameworks/ofMain.h:37,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.h:3,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.cpp:1:
../../../libs/glm/include/glm/./gtc/packing.inl: In function ‘glm::vec2 glm::unpackUnorm2x8(glm::uint16)’:
../../../libs/glm/include/glm/./gtc/packing.inl:377:37: warning: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘glm::u8vec2’ {aka ‘struct glm::tvec2<unsigned char, (glm::precision)0>’} from an array of ‘glm::uint16’ {aka ‘short unsigned int’} [-Wclass-memaccess]
   memcpy(&Unpack, &p, sizeof(Unpack));
                                     ^
In file included from ../../../libs/glm/include/glm/vec2.hpp:6,
                 from ../../../libs/openFrameworks/events/ofEvents.h:8,
                 from ../../../libs/openFrameworks/utils/ofURLFileLoader.h:3,
                 from ../../../libs/openFrameworks/ofMain.h:11,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.h:3,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.cpp:1:
../../../libs/glm/include/glm/detail/type_vec2.hpp:19:9: note: ‘glm::u8vec2’ {aka ‘struct glm::tvec2<unsigned char, (glm::precision)0>’} declared here
  struct tvec2
         ^~~~~
In file included from ../../../libs/glm/include/glm/./gtc/packing.hpp:579,
                 from ../../../libs/glm/include/glm/ext.hpp:48,
                 from ../../../libs/openFrameworks/math/ofVectorMath.h:21,
                 from ../../../libs/openFrameworks/ofMain.h:37,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.h:3,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.cpp:1:
../../../libs/glm/include/glm/./gtc/packing.inl: In function ‘glm::vec2 glm::unpackSnorm2x8(glm::uint16)’:
../../../libs/glm/include/glm/./gtc/packing.inl:409:37: warning: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘glm::i8vec2’ {aka ‘struct glm::tvec2<signed char, (glm::precision)0>’} from an array of ‘glm::uint16’ {aka ‘short unsigned int’} [-Wclass-memaccess]
   memcpy(&Unpack, &p, sizeof(Unpack));
                                     ^
In file included from ../../../libs/glm/include/glm/vec2.hpp:6,
                 from ../../../libs/openFrameworks/events/ofEvents.h:8,
                 from ../../../libs/openFrameworks/utils/ofURLFileLoader.h:3,
                 from ../../../libs/openFrameworks/ofMain.h:11,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.h:3,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.cpp:1:
../../../libs/glm/include/glm/detail/type_vec2.hpp:19:9: note: ‘glm::i8vec2’ {aka ‘struct glm::tvec2<signed char, (glm::precision)0>’} declared here
  struct tvec2
         ^~~~~
In file included from ../../../libs/glm/include/glm/./gtc/packing.hpp:579,
                 from ../../../libs/glm/include/glm/ext.hpp:48,
                 from ../../../libs/openFrameworks/math/ofVectorMath.h:21,
                 from ../../../libs/openFrameworks/ofMain.h:37,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.h:3,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.cpp:1:
../../../libs/glm/include/glm/./gtc/packing.inl: In function ‘glm::vec4 glm::unpackUnorm4x16(glm::uint64)’:
../../../libs/glm/include/glm/./gtc/packing.inl:437:37: warning: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘glm::u16vec4’ {aka ‘struct glm::tvec4<short unsigned int, (glm::precision)0>’} from an array of ‘glm::uint64’ {aka ‘long long unsigned int’} [-Wclass-memaccess]
   memcpy(&Unpack, &p, sizeof(Unpack));
                                     ^
In file included from ../../../libs/glm/include/glm/vec4.hpp:6,
                 from ../../../libs/openFrameworks/math/ofVec4f.h:8,
                 from ../../../libs/openFrameworks/math/ofVec3f.h:5,
                 from ../../../libs/openFrameworks/types/ofPoint.h:3,
                 from ../../../libs/openFrameworks/types/ofParameter.h:5,
                 from ../../../libs/openFrameworks/utils/ofJson.h:4,
                 from ../../../libs/openFrameworks/ofMain.h:21,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.h:3,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.cpp:1:
../../../libs/glm/include/glm/detail/type_vec4.hpp:19:9: note: ‘glm::u16vec4’ {aka ‘struct glm::tvec4<short unsigned int, (glm::precision)0>’} declared here
  struct tvec4
         ^~~~~
In file included from ../../../libs/glm/include/glm/./gtc/packing.hpp:579,
                 from ../../../libs/glm/include/glm/ext.hpp:48,
                 from ../../../libs/openFrameworks/math/ofVectorMath.h:21,
                 from ../../../libs/openFrameworks/ofMain.h:37,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.h:3,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.cpp:1:
../../../libs/glm/include/glm/./gtc/packing.inl: In function ‘glm::vec4 glm::unpackSnorm4x16(glm::uint64)’:
../../../libs/glm/include/glm/./gtc/packing.inl:469:37: warning: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘glm::i16vec4’ {aka ‘struct glm::tvec4<short int, (glm::precision)0>’} from an array of ‘glm::uint64’ {aka ‘long long unsigned int’} [-Wclass-memaccess]
   memcpy(&Unpack, &p, sizeof(Unpack));
                                     ^
In file included from ../../../libs/glm/include/glm/vec4.hpp:6,
                 from ../../../libs/openFrameworks/math/ofVec4f.h:8,
                 from ../../../libs/openFrameworks/math/ofVec3f.h:5,
                 from ../../../libs/openFrameworks/types/ofPoint.h:3,
                 from ../../../libs/openFrameworks/types/ofParameter.h:5,
                 from ../../../libs/openFrameworks/utils/ofJson.h:4,
                 from ../../../libs/openFrameworks/ofMain.h:21,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.h:3,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.cpp:1:
../../../libs/glm/include/glm/detail/type_vec4.hpp:19:9: note: ‘glm::i16vec4’ {aka ‘struct glm::tvec4<short int, (glm::precision)0>’} declared here
  struct tvec4
         ^~~~~
In file included from ../../../libs/glm/include/glm/./gtc/packing.hpp:579,
                 from ../../../libs/glm/include/glm/ext.hpp:48,
                 from ../../../libs/openFrameworks/math/ofVectorMath.h:21,
                 from ../../../libs/openFrameworks/ofMain.h:37,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.h:3,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.cpp:1:
../../../libs/glm/include/glm/./gtc/packing.inl: In function ‘glm::vec4 glm::unpackHalf4x16(glm::uint64)’:
../../../libs/glm/include/glm/./gtc/packing.inl:505:37: warning: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘glm::i16vec4’ {aka ‘struct glm::tvec4<short int, (glm::precision)0>’} from an array of ‘glm::uint64’ {aka ‘long long unsigned int’} [-Wclass-memaccess]
   memcpy(&Unpack, &v, sizeof(Unpack));
                                     ^
In file included from ../../../libs/glm/include/glm/vec4.hpp:6,
                 from ../../../libs/openFrameworks/math/ofVec4f.h:8,
                 from ../../../libs/openFrameworks/math/ofVec3f.h:5,
                 from ../../../libs/openFrameworks/types/ofPoint.h:3,
                 from ../../../libs/openFrameworks/types/ofParameter.h:5,
                 from ../../../libs/openFrameworks/utils/ofJson.h:4,
                 from ../../../libs/openFrameworks/ofMain.h:21,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.h:3,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.cpp:1:
../../../libs/glm/include/glm/detail/type_vec4.hpp:19:9: note: ‘glm::i16vec4’ {aka ‘struct glm::tvec4<short int, (glm::precision)0>’} declared here
  struct tvec4
         ^~~~~
In file included from /home/pi/openFrameworks/addons/ofxCv/src/ofxCv.h:23,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.h:4,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.cpp:1:
/home/pi/openFrameworks/addons/ofxCv/libs/ofxCv/include/ofxCv/Tracker.h: In member function ‘virtual const std::vector<unsigned int>& ofxCv::RectTracker::track(const std::vector<cv::Rect_<int> >&)’:
/home/pi/openFrameworks/addons/ofxCv/libs/ofxCv/include/ofxCv/Tracker.h:326:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<unsigned int>::size_type’ {aka ‘unsigned int’} [-Wsign-compare]
    for(int i = 0; i < labels.size(); i++) {
                   ~~^~~~~~~~~~~~~~~
/home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.cpp: In member function ‘virtual void testApp::setup()’:
/home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.cpp:16:42: error: no matching function for call to ‘ConsoleListener::startThread(bool, bool)’
  consoleListener.startThread(false, false);
                                          ^
In file included from ../../../libs/openFrameworks/ofMain.h:16,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.h:3,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.cpp:1:
../../../libs/openFrameworks/utils/ofThread.h:91:7: note: candidate: ‘void ofThread::startThread()’
  void startThread();
       ^~~~~~~~~~~
../../../libs/openFrameworks/utils/ofThread.h:91:7: note:   candidate expects 0 arguments, 2 provided
In file included from ../../../libs/openFrameworks/ofMain.h:6,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.h:3,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.cpp:1:
../../../libs/openFrameworks/utils/ofThread.h:99:12: note: candidate: ‘void ofThread::startThread(bool)’
       void startThread(bool mutexBlocks));
            ^~~~~~~~~~~
../../../libs/openFrameworks/utils/ofConstants.h:57:49: note: in definition of macro ‘OF_DEPRECATED_MSG’
         #define OF_DEPRECATED_MSG(message, ...) __VA_ARGS__ __attribute__ ((deprecated(message)))
                                                 ^~~~~~~~~~~
../../../libs/openFrameworks/utils/ofThread.h:99:12: note:   candidate expects 1 argument, 2 provided
       void startThread(bool mutexBlocks));
            ^~~~~~~~~~~
../../../libs/openFrameworks/utils/ofConstants.h:57:49: note: in definition of macro ‘OF_DEPRECATED_MSG’
         #define OF_DEPRECATED_MSG(message, ...) __VA_ARGS__ __attribute__ ((deprecated(message)))
                                                 ^~~~~~~~~~~
In file included from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.h:5,
                 from /home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple/src/testApp.cpp:1:
/home/pi/openFrameworks/addons/ofxCvPiCam/src/ofxCvPiCam.h: At global scope:
/home/pi/openFrameworks/addons/ofxCvPiCam/src/ofxCvPiCam.h:200:13: warning: ‘void color_callback(MMAL_PORT_T*, MMAL_BUFFER_HEADER_T*)’ declared ‘static’ but never defined [-Wunused-function]
 static void color_callback(MMAL_PORT_T *, MMAL_BUFFER_HEADER_T *);
             ^~~~~~~~~~~~~~
/home/pi/openFrameworks/addons/ofxCvPiCam/src/ofxCvPiCam.h:201:13: warning: ‘void gray_callback(MMAL_PORT_T*, MMAL_BUFFER_HEADER_T*)’ declared ‘static’ but never defined [-Wunused-function]
 static void gray_callback(MMAL_PORT_T *, MMAL_BUFFER_HEADER_T *);
             ^~~~~~~~~~~~~
make[1]: *** [../../../libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk:223: obj/linuxarmv6l/Release/src/testApp.o] Error 1
make[1]: Leaving directory '/home/pi/openFrameworks/apps/myApps/example-ofxCvPiCamSimple'
make: *** [../../../libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk:129: Release] Error 2
orgicus commented 5 years ago

Hi @RuolunWeng ,

Just had a quick look: It looks like there is a single error here:

error: no matching function for call to ‘ConsoleListener::startThread(bool, bool)’
  consoleListener.startThread(false, false);

I've just noticed the startThread method changed.

The easiest fix will be to replace:

consoleListener.startThread(false, false);

to

consoleListener.startThread();

Unfortunately I won't be able to test on a device right now.

If you have a keyboard/screen connected to your RPi and this still give you headaches you can take out ConsoleListener completely from the example:

In testApp.h remove these lines:

in testApp.cpp remove these lines:

Hope this helps, George

RuolunWeng commented 5 years ago

Thanks @orgicus ,

After removing those lines, it outputs new error: " error: unknown type name ‘MMAL_CLOCK_PAYLOAD_T’ "

orgicus commented 5 years ago

@RuolunWeng This is a more serious error.

that type is defined here: https://github.com/orgicus/ofxCvPiCam/blob/7e8af0acf8dd54243ad8251d1845202a2397e660/libs/mmal/src/interface/mmal/mmal_clock.h

It is as if the compiler doesn't know about this file for some reason and it's unclear why at this stage.

Unfortunately it will take me a while to get a 3B+ and test/debug properly.

In the meantime can you please let me know which version of Raspian you're running and which version of OpenFrameworks you're using ?

Thank you, George

RuolunWeng commented 5 years ago

@orgicus

this is the raspbian I use: https://www.raspberrypi.org/downloads/raspbian/

and I am on the of_v0.10.1_linuxarmv6l

Best Allen

orgicus commented 5 years ago

@RuolunWeng

Thanks Allen !

Regarding Raspian, when you get a chance can you send me what gets printed after you run uname -a in Terminal ?

As I mentioned, it will take me a while to properly get to the bottom of this. In the meantime, if you familiar with a bit of Python you could use the picamera[array] pip module along with the OpenCV Python bindings.

RuolunWeng commented 5 years ago

@RuolunWeng

Thanks Allen !

Regarding Raspian, when you get a chance can you send me what gets printed after you run uname -a in Terminal ?

" Linux raspberrypi 4.19.50-v7+ #896 SMP Thu Jun 20 16:11:44 BST 2019 armv7l GNU/Linux "

As I mentioned, it will take me a while to properly get to the bottom of this. In the meantime, if you familiar with a bit of Python you could use the picamera[array] pip module along with the OpenCV Python bindings.

Thank you a lot, just take you time, I am a new user of Python but it's still interesting to try.

RuolunWeng commented 5 years ago

Ps: I will test on the nightly release of OF to see if they are the same. [update: same error on nightly-release] Cause the installation failure of OF on Ubuntu+Rpi, I can't test the performance with armv7l :))

davidaronson13 commented 5 years ago

I renamed the libs folder to libs-old as per this thread: https://github.com/orgicus/ofxCvPiCam/issues/3 That did it. Using RPi 3B with Buster.

RuolunWeng commented 5 years ago

@davidaronson13 Thanks a lot David, I followed your tips that works for me. I think this is a temporary solution, right? @orgicus , so just @me when you want to test the new release.