Ich bin nicht in der Lage, opencv3 zu verknüpfen, dass ich mich getrennt von ros installiert habe. Ich bekomme diesen FehlerWie opencv3 korrekt unter ROS Indigo (mit CMake) zu verknüpfen?
Aber ich bin in der Lage, erfolgreich kompilieren außerhalb von ROS; das heißt, das ähnliche Paket ohne ROS mit .... Hier wird die CMake-Datei unter ROS verwende (das nicht funktioniert)
cmake_minimum_required(VERSION 2.8.3)
project(my_test_pkg)
SET(SRC ${CMAKE_CURRENT_SOURCE_DIR}/src)
find_package(catkin REQUIRED COMPONENTS
cv_bridge
image_transport
roscpp
rospy
std_msgs
message_generation
genmsg
)
find_package(nodelet REQUIRED)
################################################
## Declare ROS messages, services and actions ##
################################################
add_message_files(
FILES
velocity_trsl.msg
)
generate_messages(
DEPENDENCIES
std_msgs
)
catkin_package(
CATKIN_DEPENDS message_generation cv_bridge image_transport roscpp rospy std_msgs
)
###########
## Build ##
###########
include_directories(
${catkin_INCLUDE_DIRS}
)
#***********************
#****** GSL
#***********************
find_package(PkgConfig REQUIRED)
pkg_check_modules(gsl REQUIRED gsl)
#***********************
#****** Boost
#***********************
SET (BOOST_DIR "/home/polar/soft/lib/boost/boost_1_61_0")
FIND_PACKAGE(Boost 1.61.0 REQUIRED thread)
if (NOT Boost_FOUND)
message(FATAL_ERROR " Fatal error: Boost (version >= 1.55) required.")
else()
message(STATUS "Setting up BOOST")
message(STATUS " Includes - ${Boost_INCLUDE_DIRS}")
message(STATUS " Library - ${Boost_LIBRARY_DIRS}")
include_directories(${Boost_INCLUDE_DIRS})
link_directories(${Boost_LIBRARY_DIRS})
endif (NOT Boost_FOUND)
#***********************
#****** OpenCV
#***********************
find_package(OpenCV 3.1.0 REQUIRED)
find_package(OpenCV 3.1.0 REQUIRED PATHS /home/polar/soft/lib/opencv/opencv-3.1.0/cmake)
if (NOT OpenCV_FOUND)
message(FATAL_ERROR "*****!!!!! opencv NOT found.")
endif (NOT OpenCV_FOUND)
#****************************************
include_directories(${SRC}/calculus)
SET(MY_LIB
irTest
)
# ALL EXEC FILES...
SET(EXE_TESTER
tester1
)
add_executable(tester1 ${CMAKE_CURRENT_SOURCE_DIR}/exe-main-files-stdl/testdir/tester1.cpp)
SET(FILES_2_RUN
${EXE_TESTER}
)
#--------------------------
foreach(file2link ${FILES_2_RUN})
target_link_libraries(${file2link}
${catkin_LIBRARIES}
${Boost_LIBRARIES}
${gsl_LIBRARIES}
${OpenCV_LIBRARIES}
${OpenCV_LIBS}
${MY_LIB}
)
add_dependencies(${file2link} my_test_pkg_generate_messages_cpp)# newlly added for messages!!
endforeach(file2link)
add_subdirectory(src)
Sollte es ein Konflikt zwischen der opencv Version sein benutzt und dass (v2 .4) von ROS verwendet? Vielleicht erstellen cv_bridge oder image_transport dieses Problem ... (???) Ich habe sogar build/und devel/gelöscht und versucht erneut zu kompilieren, aber immer das gleiche Problem ..... Ich habe nie so viel Zeit mit diesem Problem verbracht ...
[Hier] (http://wiki.ros.org/opencv3) scheint es zu bedeuten, dass OpenCV 3 der Standard für ROS heutzutage sein sollte. – Antonio
Ich habe Ubuntu 14 und ROS Indigo neu installiert und versucht, aber immer noch das gleiche Problem zu kompilieren. Unter Ubuntu 16 mit ROS Kinetic lief es jedoch einwandfrei. Beachten Sie, dass ich das gleiche Paket genommen habe, das unter Indigo nicht funktionierte, das Paket funktioniert aber jetzt gut ... Aber bin immer noch nicht in der Lage, mein ros-Paket mit dem opencv zu verbinden Ich habe mich selbst installiert – Courier
@polar hast du es jemals geschafft zu lösen Dies auf Ubuntu 14, oder hast du mit einem Upgrade abgeschlossen? – JTIM