Hallo, nach etlichen Jahren mal wieder ein Problem bei dem ich mir selbst nicht helfen kann.
Seit irgendeinem Update lassen sich meine OpenCV-Projektchen auf keinem Xubuntu 16.04 Rechner mehr kompilieren. Im Netz ist nichts zu finden. Mache ich was falsch oder stimmt da irgendwas mit den Paketen nicht?
Der Fehler sieht so aus:
1 2 3 4 5 6 | XXX@XXX:~/Sync/Proggen/cheerson-stream/avtest$ g++ -std=c++0x avtest.cpp -o avtest -lavcodec -lavformat -lavutil -lopencv_highgui -lopencv_core -lswscale /tmp/cc9sIjLv.o: In Funktion `callback(AVFrame*, AVPacket*, void*)': avtest.cpp:(.text+0xa0d): Nicht definierter Verweis auf `cv::imshow(std::string const&, cv::_InputArray const&)' /tmp/cc9sIjLv.o: In Funktion `main': avtest.cpp:(.text+0xbac): Nicht definierter Verweis auf `cv::namedWindow(std::string const&, int)' collect2: error: ld returned 1 exit status |
Objdump sagt, in /usr/lib/x86_64-linux-gnu/libopencv_highgui.so* (aus irgendeinem Grund sind mehrere Versionen vorhanden, ist aber mit allen so) sei cv::namedWindow wie folgt definiert:
1 2 3 4 | XXX@XXX:/usr/lib/x86_64-linux-gnu$ objdump -TC libopencv_highgui.so.2.4.9 ... 00000000000232c0 g DF .text 0000000000000008 Base cv::namedWindow(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) .... |
In /usr/include/opencv2/highgui/highgui.hpp ist die Funktion aber anders definiert:
1 | CV_EXPORTS_W void namedWindow(const string& winname, int flags = WINDOW_AUTOSIZE); |
Lustigerweise kompiliert es aber wunderbar wenn ich OpenCV 2.4.9.1 aus dem Git-Repo kompiliere und die libs zusammen mit den Headern aus den Paketquellen benutze. Ausführen lässt sich das danach auch, solange das vor LD_LIBRARY_PATH gehängt ist.
1 | XXX@XXX:~/Sync/Proggen/cheerson-stream/avtest$ g++ -std=c++0x avtest.cpp -o avtest -lavcodec -lavformat -lavutil -lopencv_highgui -lopencv_core -lswscale -L /home/XXX/Dokumente/repos/opencv/release/lib |
Hier ist noch eine Liste mit allen installierten Paketen die irgendwo OpenCV im namen haben:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | XXX@XXX:~$ dpkg -l | grep -i opencv ii libopencv-calib3d-dev:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 development files for libopencv-calib3d ii libopencv-calib3d2.4v5:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 computer vision Camera Calibration library ii libopencv-contrib-dev:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 development files for libopencv-contrib ii libopencv-contrib2.4v5:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 computer vision contrib library ii libopencv-core-dev:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 development files for libopencv-core ii libopencv-core2.4v5:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 computer vision core library ii libopencv-dev 2.4.9.1+dfsg-1.5ubuntu1 amd64 development files for opencv ii libopencv-features2d-dev:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 development files for libopencv-features2d ii libopencv-features2d2.4v5:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 computer vision Feature Detection and Descriptor Extraction library ii libopencv-flann-dev:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 development files for libopencv-flann ii libopencv-flann2.4v5:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 computer vision Clustering and Search in Multi-Dimensional spaces library ii libopencv-gpu-dev:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 development files for libopencv-gpu2.4v5 ii libopencv-gpu2.4v5:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 computer vision GPU library ii libopencv-highgui-dev:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 development files for libopencv-highgui ii libopencv-highgui2.4v5:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 computer vision High-level GUI and Media I/O library ii libopencv-imgproc-dev:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 development files for libopencv-imgproc ii libopencv-imgproc2.4v5:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 computer vision Image Processing library ii libopencv-legacy-dev:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 development files for libopencv-legacy ii libopencv-legacy2.4v5:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 computer vision legacy library ii libopencv-ml-dev:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 development files for libopencv-ml ii libopencv-ml2.4v5:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 computer vision Machine Learning library ii libopencv-objdetect-dev:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 development files for libopencv-objdetect ii libopencv-objdetect2.4v5:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 computer vision Object Detection library ii libopencv-ocl-dev:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 development files for libopencv-ocl2.4v5 ii libopencv-ocl2.4v5:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 computer vision OpenCL support library ii libopencv-photo-dev:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 development files for libopencv-photo2.4v5 ii libopencv-photo2.4v5:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 computer vision computational photography library ii libopencv-stitching-dev:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 development files for libopencv-stitching2.4v5 ii libopencv-stitching2.4v5:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 computer vision image stitching library ii libopencv-superres-dev:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 development files for libopencv-superres2.4v5 ii libopencv-superres2.4v5:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 computer vision Super Resolution library ii libopencv-ts-dev:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 development files for libopencv-ts2.4v5 ii libopencv-ts2.4v5:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 computer vision ts library ii libopencv-video-dev:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 development files for libopencv-video ii libopencv-video2.4v5:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 computer vision Video analysis library ii libopencv-videostab-dev:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 development files for libopencv-videostab2.4v5 ii libopencv-videostab2.4v5:amd64 2.4.9.1+dfsg-1.5ubuntu1 amd64 computer vision video stabilization library ii libopencv2.4-java 2.4.9.1+dfsg-1.5ubuntu1 all Java bindings for the computer vision library ii libopencv2.4-jni 2.4.9.1+dfsg-1.5ubuntu1 amd64 Java jni library for the computer vision library ii opencv-data 2.4.9.1+dfsg-1.5ubuntu1 all development data for opencv ii python-opencv 2.4.9.1+dfsg-1.5ubuntu1 amd64 Python bindings for the computer vision library |
Mache ich jetzt was falsch oder ist da was zusammengepackt wurden was nicht zusammengehört? Wo geht man damit hin, sollte das tatsächlich ein Bug sein? Und wie kann man sich solange Abhilfe verschaffen? Das selbst kompilierte OpenCV würde ich nur sehr ungern installieren, da ich keine Ahnung hab, wie das dann mit den Anwendungen die von CV abhängen aussieht und was man alles Beachten muss, wenn man so im System rumrührt. Wenn jemand helfen kann, wäre ich sehr dankbar ☺
EDIT: Titel etwas geändert, da den vorherigen kaum wer angeklickt hat.