2015-01-14 3 views
0

Я пытаюсь включить opencv2.4.9 с CMake:CMake добавления OpenCV

cmake_minimum_required(VERSION 2.8.3) 
project(HydroCamel) 
SET(CMAKE_CXX_FLAGS "-lpthread") 
find_package(catkin REQUIRED COMPONENTS 
    roscpp 
    rospy 
    std_msgs 
) 
catkin_package() 
set(SRC_FOLDER src/src) 
set(ALOGS_FOLDER src/Algos) 
set(ALOGS_UTILS_FOLDER src/Algos/Utils) 
set(SRC_INCLUDE_FOLDER src/include) 
set(DIRS ${SRC_FOLDER} ${ALOGS_FOLDER} ${ALOGS_UTILS_FOLDER} ${SRC_INCLUDE_FOLDER}) 
include_directories(${DIRS}) 

file(GLOB_RECURSE SRC_FILES "*.h" "*.cpp") 
include_directories(include ${catkin_INCLUDE_DIRS}) 

set(Boost_USE_STATIC_LIBS OFF) 
set(Boost_USE_MULTITHREADED ON) 
set(Boost_USE_STATIC_RUNTIME OFF) 
find_package(Boost 1.55.0 COMPONENTS filesystem system thread) 
#FIND_PACKAGE(OpenCV REQUIRED core imgproc highgui) 
include_directories(${OpenCV_INCLUDE_DIRS}) 
if(Boost_FOUND) 
    include_directories(${Boost_INCLUDE_DIRS}) 
    add_executable(SourceFiles ${SRC_FILES}) 
    TARGET_LINK_LIBRARIES(SourceFiles ${Boost_LIBRARIES}) 
    TARGET_LINK_LIBRARIES(SourceFiles ${OpenCV_LIBS}) 
endif() 

И я получаю эту ошибку:

CMake Error at HydroCamel/CMakeLists.txt:28 (find_package): Found package configuration file:

/home/jdorfsman/opencv-2.4.9/build/OpenCVConfig.cmake 

but it set OpenCV_FOUND to FALSE so package "OpenCV" is considered to be NOT FOUND.

-- Configuring incomplete, errors occurred! See also "/home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeOutput.log". See also "/home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeError.log".

Это файл CMakeError.log:

Determining if the pthread_create exist failed with the following output: 
Change Dir: /home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeTmp 

Run Build Command:/usr/bin/make "cmTryCompileExec1061744568/fast" 
/usr/bin/make -f CMakeFiles/cmTryCompileExec1061744568.dir/build.make CMakeFiles/cmTryCompileExec1061744568.dir/build 
make[1]: Entering directory `/home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeTmp' 
/usr/bin/cmake -E cmake_progress_report /home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeTmp/CMakeFiles 1 
Building C object CMakeFiles/cmTryCompileExec1061744568.dir/CheckSymbolExists.c.o 
/usr/bin/cc -o CMakeFiles/cmTryCompileExec1061744568.dir/CheckSymbolExists.c.o -c /home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c 
Linking C executable cmTryCompileExec1061744568 
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1061744568.dir/link.txt --verbose=1 
/usr/bin/cc  CMakeFiles/cmTryCompileExec1061744568.dir/CheckSymbolExists.c.o -o cmTryCompileExec1061744568 -rdynamic 
CMakeFiles/cmTryCompileExec1061744568.dir/CheckSymbolExists.c.o: In function `main': 
CheckSymbolExists.c:(.text+0x16): undefined reference to `pthread_create' 
collect2: error: ld returned 1 exit status 
make[1]: *** [cmTryCompileExec1061744568] Error 1 
make[1]: Leaving directory `/home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeTmp' 
make: *** [cmTryCompileExec1061744568/fast] Error 2 

File /home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c: 
/* */ 
#include <pthread.h> 

int main(int argc, char** argv) 
{ 
    (void)argv; 
#ifndef pthread_create 
    return ((int*)(&pthread_create))[argc]; 
#else 
    (void)argc; 
    return 0; 
#endif 
} 

Determining if the function pthread_create exists in the pthreads failed with the following output: 
Change Dir: /home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeTmp 

Run Build Command:/usr/bin/make "cmTryCompileExec3426763052/fast" 
/usr/bin/make -f CMakeFiles/cmTryCompileExec3426763052.dir/build.make CMakeFiles/cmTryCompileExec3426763052.dir/build 
make[1]: Entering directory `/home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeTmp' 
/usr/bin/cmake -E cmake_progress_report /home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeTmp/CMakeFiles 1 
Building C object CMakeFiles/cmTryCompileExec3426763052.dir/CheckFunctionExists.c.o 
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTryCompileExec3426763052.dir/CheckFunctionExists.c.o -c /usr/share/cmake-2.8/Modules/CheckFunctionExists.c 
Linking C executable cmTryCompileExec3426763052 
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3426763052.dir/link.txt --verbose=1 
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create CMakeFiles/cmTryCompileExec3426763052.dir/CheckFunctionExists.c.o -o cmTryCompileExec3426763052 -rdynamic -lpthreads 
/usr/bin/ld: cannot find -lpthreads 
collect2: error: ld returned 1 exit status 
make[1]: *** [cmTryCompileExec3426763052] Error 1 
make[1]: Leaving directory `/home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeTmp' 
make: *** [cmTryCompileExec3426763052/fast] Error 2 
+0

См ** ** журнал файлы, как сообщение об ошибке предложить.. [Возможно, эти инструкции могут вам помочь.] (Http://answers.opencv.org/question/35125/cmake-linking-error-opencv_found-to-false-ubuntu-1304/) – karlphillip

+0

Что произойдет, если вы установите переменную окружения 'OpenCV_DIR', выполнив что-то вроде' export OpenCV_DIR =/home/jdorfsman/opencv-2.4.9/build', перезапустите 'set (OpenCV_DIR ...)' и запустите cmake? http://stackoverflow.com/questions/9846171/cmake-still-not-working-with-opencv – francis

+0

То же самое печально. 'Найденный файл конфигурации пакета: /home/jdorfsman/opencv-2.4.9/build/OpenCVConfig.cmake , но он установил OpenCV_FOUND в FALSE, поэтому пакет« OpenCV »считается НЕ НАЙДЕНЫ.' – Javi

ответ

0

Похоже, вы не указали флаг pthread.

CMakeFiles/cmTryCompileExec1061744568.dir/CheckSymbolExists.c.o: In function `main': 
CheckSymbolExists.c:(.text+0x16): undefined reference to `pthread_create' 
collect2: error: ld returned 1 exit status 
make[1]: *** [cmTryCompileExec1061744568] Error 1 
make[1]: Leaving directory `/home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeTmp' 
make: *** [cmTryCompileExec1061744568/fast] Error 2 

попробуйте добавить:

SET(CMAKE_CXX_FLAGS "-lpthread") 
+0

Добавил его, все еще не работает .. – Javi

+0

вы могли бы запустить 'make VERBOSE = 1' и скопировать вставьте вывод в свой пост? – qqibrow

+0

Я загрузил его здесь: https://mega.co.nz/#!LYkQGAQB!BttwK0a5uVT0XCM9TcBoaaN0tgSH4pjUMfUVBIKXcPQ Спасибо! – Javi

Смежные вопросы