From: Dagna B. <dag...@gm...> - 2013-01-16 13:17:52
|
Hi guys! Recently I've installed ubuntu on my new computer then I installed OpenCV 2.4.1 and it turned out that they changed their philosophy a bit and 2.4.1 is not reverse compatible :/ Now they use using namespace cv; and all the functions don't have cv prefix anymore. When making player-3.0.2 I get following errors: libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvCreateImage' libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvLaplace' I'd like to ask if any version of Player/Stage you're working on will be compatible with C++ OpenCV ? When it will be released? I need Player compatible with newest OpenCV, cause I've been working whole semester on some project of image processing for my master thesis and now I want to implement it on PeopleBot ( I know it's possible to move PeopleBot via Player ), but all the work I've done is already in OpenCV2.4.1. Please let me know is there a chance to make it working together, Thank you in advance! Dagna |
From: Rich M. <jp...@gm...> - 2013-01-16 18:36:22
|
On Wed, Jan 16, 2013 at 8:17 AM, Dagna Bieda <dag...@gm...> wrote: > Hi guys! > Recently I've installed ubuntu on my new computer then I installed OpenCV > 2.4.1 and it turned out that they changed their philosophy a bit and 2.4.1 > is not reverse compatible :/ Now they use using namespace cv; and all the > functions don't have cv prefix anymore. > > Player is compatible with OpenCV 2.4. We've had it in Fedora since July with no issues. The old style C API still exists, the cv namespace is for the new C++ API that's been introduced in parallel. > When making player-3.0.2 I get following errors: > libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to > `cvCreateImage' > libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to > `cvLaplace' > > The fact that you're seeing "undefined reference" errors means that Player has already gotten past the step where it compiled all of its source files. That rules out any API issues (e.g. the cvCreateImage function still exists in a header file somewhere.) It's now trying to link against OpenCV's libraries (libcv.so and friends) and failing. This may be due to having OpenCV on a non-standard path (like /usr/local) without properly setting LD_LIBRARY_PATH. Did you install OpenCV yourself, or did you use packages provided by your distribution? To debug further, we need: * The location of libcv.so and the rest of the OpenCV libraries on your system * The output of CMake when you run it to build Player * The full compiler command line that was run which produced the error ("make VERBOSE=1" will reveal it) Rich |
From: Dagna B. <dag...@gm...> - 2013-01-17 13:12:44
|
Thanks for your fast answer! Yep, you're right - I installed my OpenCV by myself, following this tutorial :- http://www.samontab.com/web/2012/06/installing-opencv-2-4-1-ubuntu-12-04-lts/ and it's actually placed in usr/local/ not in usr/ I'm planning to reinstall OpenCV so it'll be placed in usr/, not in any local directory. If I'll still have problems, I'll send you what you've asked for, or if everything goes fine - I'll let you know, that it's working ! Dagna 2013/1/16 Rich Mattes <jp...@gm...> > > > On Wed, Jan 16, 2013 at 8:17 AM, Dagna Bieda <dag...@gm...>wrote: > >> Hi guys! >> Recently I've installed ubuntu on my new computer then I installed OpenCV >> 2.4.1 and it turned out that they changed their philosophy a bit and 2.4.1 >> is not reverse compatible :/ Now they use using namespace cv; and all the >> functions don't have cv prefix anymore. >> >> > Player is compatible with OpenCV 2.4. We've had it in Fedora since July > with no issues. The old style C API still exists, the cv namespace is for > the new C++ API that's been introduced in parallel. > > >> When making player-3.0.2 I get following errors: >> libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to >> `cvCreateImage' >> libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to >> `cvLaplace' >> >> > The fact that you're seeing "undefined reference" errors means that Player > has already gotten past the step where it compiled all of its source > files. That rules out any API issues (e.g. the cvCreateImage function > still exists in a header file somewhere.) It's now trying to link against > OpenCV's libraries (libcv.so and friends) and failing. This may be due to > having OpenCV on a non-standard path (like /usr/local) without properly > setting LD_LIBRARY_PATH. Did you install OpenCV yourself, or did you use > packages provided by your distribution? > > To debug further, we need: > * The location of libcv.so and the rest of the OpenCV libraries on your > system > * The output of CMake when you run it to build Player > * The full compiler command line that was run which produced the error > ("make VERBOSE=1" will reveal it) > > Rich > > > ------------------------------------------------------------------------------ > Master Java SE, Java EE, Eclipse, Spring, Hibernate, JavaScript, jQuery > and much more. Keep your Java skills current with LearnJavaNow - > 200+ hours of step-by-step video tutorials by Java experts. > SALE $49.99 this month only -- learn more at: > http://p.sf.net/sfu/learnmore_122612 > _______________________________________________ > Playerstage-users mailing list > Pla...@li... > https://lists.sourceforge.net/lists/listinfo/playerstage-users > > |
From: Jennifer <ren...@gm...> - 2013-01-17 15:17:39
|
Hi Dagna, Hi Rich. I am a newbie in the Player/Stage community and I am having the same problem. I installed OpenCv 2.4.3 in /usr/ but still not working. I don't have any libcv.so file, but a libopencv_core.so in /usr/lib. All other lib files are in /usr/lib too. Here is the output of cmake : jrenoux@gaspar:~/Documents/player-stage/player-3.0.2/build$ cmake .. -- Player version 3.0.2 -- Operating system is Linux -- Got System Processor x86_64 -- Linux x86_64 Detected -- Player will be installed to /usr/local -- Player libraries will be in lib64 -- Large file support is disabled. -- ===== Client Libraries ===== -- Python bindings for C client library will be built -- Could NOT find Ruby (missing: RUBY_INCLUDE_DIR RUBY_LIBRARY) (found version "1.8.7") -- Ruby bindings for C client library will not be built - could not find Ruby -- Python bindings for C++ client library will not be built - disabled by user -- Could NOT find Ruby (missing: RUBY_INCLUDE_DIR RUBY_LIBRARY) (found version "1.8.7") -- Ruby bindings for C++ client library will not be built - could not find Ruby -- PlayerC++ client library will be built with Boost::Thread support. -- PlayerC++ client library will be built with Boost::Signals support. -- ============================ -- -- ----- Processing driver make files ----- -- checking for module 'artoolkitplus>=2.1' -- package 'artoolkitplus>=2.1' not found -- checking for module 'gstreamer-base-0.10' -- package 'gstreamer-base-0.10' not found -- checking for module 'GbxGarminAcfr=1.0.0' -- package 'GbxGarminAcfr=1.0.0' not found -- checking for module 'libstatgrab' -- package 'libstatgrab' not found -- checking for module 'libgarcia' -- package 'libgarcia' not found -- checking for module 'flexiport=1.0.0' -- package 'flexiport=1.0.0' not found -- checking for module 'GbxSmartBatteryAcfr=1.0.0' -- package 'GbxSmartBatteryAcfr=1.0.0' not found -- checking for module 'GbxSickAcfr=1.0.0' -- package 'GbxSickAcfr=1.0.0' not found -- checking for module 'hokuyo_aist=1.0.0' -- package 'hokuyo_aist=1.0.0' not found -- checking for module 'howl>=0.9.6' -- package 'howl>=0.9.6' not found -- checking for module 'libpqxx' -- package 'libpqxx' not found -- checking for module 'libpqxx' -- package 'libpqxx' not found -- ----- Done ----- -- -- ===== Drivers ===== -- The following drivers will be built: -- AioToSonar -- accel_calib -- acts -- alsa -- amcl -- amtecpowercube -- aodv -- bitlogic -- blobposition -- blobtodio -- blobtracker -- bumper2laser -- bumpersafe -- bumpertodio -- cameracompress -- camerauncompress -- camerauvc -- camerav4l2 -- camfilter -- canonvcc4 -- clodbuster -- cmdsplitter -- cmucam2 -- cmvision -- create -- cvcam -- deadstop -- diocmd -- diodelay -- diolatch -- dummy -- epuck -- er1 -- erratic -- fakelocalize -- festival -- flockofbirds -- garminnmea -- globalize -- goto -- gridmap -- gripcmd -- imageseq -- imgcmp -- imgsave -- inhibitor -- insideM300 -- iwspy -- kartowriter -- khepera -- laserbar -- laserbarcode -- lasercspace -- lasercutter -- laserposeinterpolator -- laserptzcloud -- laserrescan -- lasersafe -- lasertoranger -- linuxjoystick -- localbb -- mapcspace -- mapfile -- mapscale -- mbicp -- mica2 -- microstrain -- motionmind -- mricp -- nd -- nomad -- obot -- opaquecmd -- p2os -- passthrough -- pbslaser -- portio -- ptu46 -- rangerposeinterpolator -- rangertodio -- rangertolaser -- readlog -- relay -- rflex -- roboteq -- robotracker -- roomba -- rs4leuze -- rt3xxx -- searchpattern -- segwayrmp400 -- serialstream -- serio -- shapetracker -- sickLDMRS -- sickRFI341 -- sicklms200 -- sicklms400 -- sicknav200 -- sicks3000 -- simpleshape -- skyetekM1 -- snd -- sonartoranger -- sonyevid30 -- speechcmd -- sphereptz -- stalltodio -- suppressor -- tcpstream -- upcbarcode -- vec2map -- velcmd -- vfh -- videocanny -- vmapfile -- wavefront -- wbr914 -- writelog -- -- The following drivers will not be built: -- acr120u - Could not find header usb.h -- amtecm5 - Could not find header Device.h -- artoolkitplus - Could not find package artoolkitplus -- camera1394 - Could not find header libraw1394/raw1394.h -- cameragst - Could not find package gstreamer-base-0.10 -- camerav4l - Could not find header linux/videodev.h -- eedhcontroller - Disabled - probably doesn't build -- flexiport - Could not find package flexiport -- garcia - Could not find package libgarcia -- gbxgarminacfr - Could not find package GbxGarminAcfr -- gbxsickacfr - Could not find package GbxSickAcfr -- hokuyo_aist - Could not find package hokuyo_aist -- isense - Could not find header isense/isense.h -- laservisualbarcode - Has not been updated to use dynamic message structures -- laservisualbw - Has not been updated to use dynamic message structures -- linuxwifi - Could not find header linux/wireless.h -- nimu - Could not find header usb.h -- oceanserver - Could not find package GbxSmartBatteryAcfr -- phidgetAcc - Could not find header phidget21.h -- phidgetRFID - Could not find header phidget21.h -- phidgetifk - Could not find header phidget21.h -- postgis - Could not find package libpqxx -- postlog - Could not find package libpqxx -- rcore_xbridge - Could not find header libparticle.h -- reb - Disabled by default -- robotino - Could not find header robotinocom.h -- segwayrmp - Disabled by default -- service_adv_mdns - Disabled by default -- sphere - Could not find header linux/videodev.h -- sphinx2 - Disabled by default -- sr3000 - Could not find header libusbSR.h -- statgrab - Could not find package libstatgrab -- stoc - Could not find header SVS/svsclass.h -- swissranger - Could not find header libMesaSR.h -- unicapimage - Could not find header unicap.h -- xsensmt - Disabled by default - set XSENSMT_SOURCE_DIR -- yarpimage - Could not find header yarp/os/all.h -- =================== -- -- ===== Examples ===== -- ==================== -- -- ===== Player utilities ===== -- XMMS plugin will not be built - XMMS not found -- ============================ -- -- Configuring done -- Generating done -- Build files have been written to: /home/jrenoux/Documents/player-stage/player-3.0.2/build Here is the output of the compiler : Linking CXX executable player cd /home/jrenoux/Documents/player-stage/player-3.0.2/build/server && /usr/bin/cmake -E cmake_link_script CMakeFiles/player.dir/link.txt --verbose=1 /usr/bin/c++ -Wall CMakeFiles/player.dir/server.o -o player -rdynamic libplayerdrivers/libplayerdrivers.so.3.0.2 ../libplayercore/libplayercore.so.3.0.2 ../libplayercommon/libplayercommon.so.3.0.2 ../libplayertcp/libplayertcp.so.3.0.2 ../libplayertcp/libplayerudp.so.3.0.2 ../libplayerinterface/libplayerinterface.so.3.0.2 ../libplayerwkb/libplayerwkb.so.3.0.2 -lpthread -lltdl -ldl -lasound -ljpeg /usr/lib/libopencv_calib3d.so /usr/lib/libopencv_contrib.so /usr/lib/libopencv_core.so /usr/lib/libopencv_features2d.so /usr/lib/libopencv_flann.so /usr/lib/libopencv_gpu.so /usr/lib/libopencv_highgui.so /usr/lib/libopencv_imgproc.so /usr/lib/libopencv_legacy.so /usr/lib/libopencv_ml.so /usr/lib/libopencv_nonfree.so /usr/lib/libopencv_objdetect.so /usr/lib/libopencv_photo.so /usr/lib/libopencv_stitching.so /usr/lib/libopencv_ts.so /usr/lib/libopencv_video.so /usr/lib/libopencv_videostab.so /usr/lib/libopencv_calib3d.so /usr/lib/libopencv_contrib.so /usr/lib/libopencv_core.so /usr/lib/libopencv_features2d.so /usr/lib/libopencv_flann.so /usr/lib/libopencv_gpu.so /usr/lib/libopencv_highgui.so /usr/lib/libopencv_imgproc.so /usr/lib/libopencv_legacy.so /usr/lib/libopencv_ml.so /usr/lib/libopencv_nonfree.so /usr/lib/libopencv_objdetect.so /usr/lib/libopencv_photo.so /usr/lib/libopencv_stitching.so /usr/lib/libopencv_ts.so /usr/lib/libopencv_video.so /usr/lib/libopencv_videostab.so /usr/lib/libopencv_calib3d.so /usr/lib/libopencv_contrib.so /usr/lib/libopencv_core.so /usr/lib/libopencv_features2d.so /usr/lib/libopencv_flann.so /usr/lib/libopencv_gpu.so /usr/lib/libopencv_highgui.so /usr/lib/libopencv_imgproc.so /usr/lib/libopencv_legacy.so /usr/lib/libopencv_ml.so /usr/lib/libopencv_nonfree.so /usr/lib/libopencv_objdetect.so /usr/lib/libopencv_photo.so /usr/lib/libopencv_stitching.so /usr/lib/libopencv_ts.so /usr/lib/libopencv_video.so /usr/lib/libopencv_videostab.so -ljpeg -ljpeg -ljpeg /usr/lib/libopencv_calib3d.so /usr/lib/libopencv_contrib.so /usr/lib/libopencv_core.so /usr/lib/libopencv_features2d.so /usr/lib/libopencv_flann.so /usr/lib/libopencv_gpu.so /usr/lib/libopencv_highgui.so /usr/lib/libopencv_imgproc.so /usr/lib/libopencv_legacy.so /usr/lib/libopencv_ml.so /usr/lib/libopencv_nonfree.so /usr/lib/libopencv_objdetect.so /usr/lib/libopencv_photo.so /usr/lib/libopencv_stitching.so /usr/lib/libopencv_ts.so /usr/lib/libopencv_video.so /usr/lib/libopencv_videostab.so /usr/lib/libopencv_calib3d.so /usr/lib/libopencv_contrib.so /usr/lib/libopencv_core.so /usr/lib/libopencv_features2d.so /usr/lib/libopencv_flann.so /usr/lib/libopencv_gpu.so /usr/lib/libopencv_highgui.so /usr/lib/libopencv_imgproc.so /usr/lib/libopencv_legacy.so /usr/lib/libopencv_ml.so /usr/lib/libopencv_nonfree.so /usr/lib/libopencv_objdetect.so /usr/lib/libopencv_photo.so /usr/lib/libopencv_stitching.so /usr/lib/libopencv_ts.so /usr/lib/libopencv_video.so /usr/lib/libopencv_videostab.so -ljpeg -ljpeg /usr/lib/libopencv_calib3d.so /usr/lib/libopencv_contrib.so /usr/lib/libopencv_core.so /usr/lib/libopencv_features2d.so /usr/lib/libopencv_flann.so /usr/lib/libopencv_gpu.so /usr/lib/libopencv_highgui.so /usr/lib/libopencv_imgproc.so /usr/lib/libopencv_legacy.so /usr/lib/libopencv_ml.so /usr/lib/libopencv_nonfree.so /usr/lib/libopencv_objdetect.so /usr/lib/libopencv_photo.so /usr/lib/libopencv_stitching.so /usr/lib/libopencv_ts.so /usr/lib/libopencv_video.so /usr/lib/libopencv_videostab.so -lz ../libplayerjpeg/libplayerjpeg.so.3.0.2 -ljpeg -lgdk_pixbuf-2.0 -lgobject-2.0 -lglib-2.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig ../libplayercore/libplayercore.so.3.0.2 -lrt -lpthread -lltdl -ldl ../libplayerinterface/libplayerinterface.so.3.0.2 ../libplayercommon/libplayercommon.so.3.0.2 -lz -Wl,-rpath,/home/jrenoux/Documents/player-stage/player-3.0.2/build/server/libplayerdrivers:/home/jrenoux/Documents/player-stage/player-3.0.2/build/libplayercore:/home/jrenoux/Documents/player-stage/player-3.0.2/build/libplayercommon:/home/jrenoux/Documents/player-stage/player-3.0.2/build/libplayertcp:/home/jrenoux/Documents/player-stage/player-3.0.2/build/libplayerinterface:/home/jrenoux/Documents/player-stage/player-3.0.2/build/libplayerwkb:/home/jrenoux/Documents/player-stage/player-3.0.2/build/libplayerjpeg: libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvCloneImage' libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvGetCaptureProperty' libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvReleaseMemStorage' libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvReleaseImage' libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvLUT' libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvCopy' libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvBoundingRect' libplayerdrivers/libplayerdrivers.so.3.0.2: undefined reference to `cvSobel' I have already checked that all lib files requested by the linker were actually in the /usr/lib direcory. Thanks in advance for your help. Jennifer -- View this message in context: http://player-stage-gazebo.10965.n7.nabble.com/compatibility-with-OpenCV2-4-1-tp18536p18540.html Sent from the playerstage-users mailing list archive at Nabble.com. |
From: yantrabuddhi <man...@gm...> - 2013-01-17 16:42:17
|
Hi, I have been using opencv recently and what I can tell you is that your .so files such as libopencv_core.so should be placed under /usr/lib on 32 bit Linux or under /usr/lib64 for 64 bit Linux then linking problems should not be there for correct .so However for opencv2 I have used only the c++ api. Your linking error shows that your project included the header CV.h and hence when linker does not find matching .so it gives undefined reference. You should run ccmake instead of cmake to check if there is option to switch between opencv1 or opencv2. Your cmake output shows you are using 64 Bit is. Hope this helps a little :-) Mandeep -- View this message in context: http://player-stage-gazebo.10965.n7.nabble.com/compatibility-with-OpenCV2-4-1-tp18536p18542.html Sent from the playerstage-users mailing list archive at Nabble.com. |
From: yantrabuddhi <man...@gm...> - 2013-01-17 16:46:55
|
Hi, I have been using opencv recently and what I can tell you is that your .so files such as libopencv_core.so should be placed under /usr/lib on 32 bit Linux or under /usr/lib64 for 64 bit Linux then linking problems should not be there for correct .so However for opencv2 I have used only the c++ api. Your linking error shows that your project included the header CV.h and hence when linker does not find matching .so it gives undefined reference. You should run ccmake instead of cmake to check if there is option to switch between opencv1 or opencv2. Your cmake output shows you are using 64 Bit is. Hope this helps a little :-) Mandeep -- View this message in context: http://player-stage-gazebo.10965.n7.nabble.com/compatibility-with-OpenCV2-4-1-tp18536p18543.html Sent from the playerstage-users mailing list archive at Nabble.com. |
From: Rich M. <jp...@gm...> - 2013-01-19 00:40:37
|
On 01/17/2013 10:17 AM, Jennifer wrote: > Hi Dagna, Hi Rich. > > I am a newbie in the Player/Stage community and I am having the same > problem. I installed OpenCv 2.4.3 in /usr/ but still not working. > I don't have any libcv.so file, but a libopencv_core.so in /usr/lib. All > other lib files are in /usr/lib too. > > Yikes, it looks like the full paths to the libraries are getting passed to the linker, instead of -lopencv_libname. What does "pkg-config --cflags --libs opencv" return on your system? It should look like: $ pkg-config --cflags --libs opencv -I/usr/include/opencv -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_ts -lopencv_video -lopencv_videostab |
From: Jennifer <ren...@gm...> - 2013-01-21 08:26:32
|
Indeed Rich, you are right. The command gives me this result : $ pkg-config --cflags --libs opencv -I/usr/include/opencv /usr/lib/libopencv_calib3d.so /usr/lib/libopencv_contrib.so /usr/lib/libopencv_core.so /usr/lib/libopencv_features2d.so /usr/lib/libopencv_flann.so /usr/lib/libopencv_gpu.so /usr/lib/libopencv_highgui.so /usr/lib/libopencv_imgproc.so /usr/lib/libopencv_legacy.so /usr/lib/libopencv_ml.so /usr/lib/libopencv_nonfree.so /usr/lib/libopencv_objdetect.so /usr/lib/libopencv_photo.so /usr/lib/libopencv_stitching.so /usr/lib/libopencv_ts.so /usr/lib/libopencv_video.so /usr/lib/libopencv_videostab.so -- View this message in context: http://player-stage-gazebo.10965.n7.nabble.com/compatibility-with-OpenCV2-4-1-tp18536p18554.html Sent from the playerstage-users mailing list archive at Nabble.com. |