Linking error with OpenCV on Jetson TK1
Hi there everybody,
I am currently trying to build a package on my Jetson TK1. The package already works on my laptop. Everything works up to the linking stage of the catkin_make
. The errors look like :
Linking CXX executable /home/ubuntu/catkin_ws/devel/lib/turtlebot_/face_follower
face_follower.cpp(.text+0x2fc): undefined reference to 'cv::CascadeClassifier::load(cv::String const&)'
For reference, here's my CMakeLists.txt:
cmake_minimum_required(VERSION 2.8.3)
set(CMAKE_CXX_FLAGS "-std=c++11")
# PROJECT NAME
project(turtlebot_)
# CATKIN PREFIX FOR LIBFREENECT AND OPENCV DIRECTORIES
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} /usr/local/lib)
set(OpenCV_DIR /usr/share/OpenCV)
# ENABLE THREADING AND OPENGL (FOR LATER USE (EX: DISPLAY WITHOUT IMSHOW()))
set(THREADS_USE_PTHREADS_WIN32 true)
find_package(Threads)
find_package(OpenGL)
find_package(GLUT)
# ROS RELATED PACKAGES
find_package(catkin REQUIRED COMPONENTS
cv_bridge
geometry_msgs
image_transport
kobuki_msgs
nodelet
pluginlib
roscpp
rospy
rviz
sensor_msgs
std_msgs
tf
urdf
xacro
yocs_controllers
OpenCV
message_filters
)
if(CMAKE_VERSION VERSION_LESS "2.8.11")
# Add OpenCV headers location to your include paths
include_directories(${OpenCV_INCLUDE_DIRS})
endif()
# NON-ROS RELATED PACKAGES
find_package(libfreenect REQUIRED)
# REQUIRED TO USE ROS.H
catkin_package()
include_directories(
include ${catkin_INCLUDE_DIRS} ${freenect_INCLUDE_DIRS})
# LIBFREENECT/THREADING/OPENGL DIRECTORIES (SEE EXAMPLES IN LIBFREENECT/EXAMPLES/CMAKELISTS.TXT)
include_directories("/usr/include/libusb-1.0/")
include_directories(../wrappers/c_sync/)
include_directories(${THREADS_PTHREADS_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR} ${GLUT_INCLUDE_DIR})
# ADDING NODES AND LINKING REQUIRED LIBRARIES
add_executable(face_follower src/face_follower.cpp)
target_link_libraries(face_follower ${OpenCV_LIBS} ${catkin_LIBRARIES} freenect freenect_sync ${CMAKE_THREAD_LIBS_INIT} ${MATH_LIB})
# LIKE ALWAYS
add_dependencies(face_follower face_follower_generate_messages_cpp)
I looked into /usr/local/lib
and it seems that the OpenCV files are located inside a folder named arm-linux-gnueabihf
. I copied them ouside of that folder with their pkgconfig
file too but it didn't solve the problem.
Any thoughts?