[c++] OpenCV verbindet Probleme mit ROS


Answers

Ich hatte auch das Problem. Ich konnte Osians Lösung wegen mangelnder Repräsentation nicht kommentieren, aber dies ist die Vorgehensweise, die ich verwendet habe:

sudo apt-get remove libopencv*

Wenn Sie aus irgendeinem Grund OpenCV von der Quelle installiert haben, geben Sie Ihr Build-Verzeichnis ein und tun Sie:

sudo make uninstall

Dann endlich

sudo apt-get install ros-indigo-desktop-full
Question

Ich versuche dieses Projekt zu kompilieren (nach den gegebenen Anweisungen). Wenn ich es mit rosmake , bekomme ich einen Haufen undefined reference to cv::String::deallocate() und undefined reference to cv::String::allocate(unsigned long) . Ich finde es seltsam, dass ich gerade in diesen Funktionen einen Fehler erhalte, während der Rest der OpenCV-Funktionen anscheinend richtig funktioniert.

Ich weiß, dass dies passiert, weil der Linker die Objekte nicht finden kann, zu denen diese Funktionen kompiliert wurden, aber ich bin irgendwie neu im ROS-Build-System und kann nicht herausfinden, was falsch ist.

Ich habe versucht, die CMakeLists.txt Datei zu verwenden, und find_package(OpenCV REQUIRED) und target_link_libraries(xxx xxx ${OpenCV_LIBRARIES}) , ohne dass das einen Unterschied macht. Ich weiß, dass OpenCV korrekt installiert und kompiliert wurde (ich habe es vorher schon benutzt), und ich hatte ROS ohne Probleme installiert.

Ich benutze OpenCV 3, ROS Indigo, Ubuntu 14.04




Haben Sie Opencv in mehreren Versionen? Wenn Sie haben, sollten Sie vielleicht den Pfad zu OpenCVConfig.cmake in CmakeList.txt . Genau unter dem cmake_minimum_required(VERSION 2.8.12) , so:

set(OpenCV_DIR "/home/ubuntu/src/opencv-3.1.0/build")

Das ist alles.