2015-09-12 6 views
1

Я пытаюсь использовать cmake для компиляции кода с OpenCV 3.0 в нем. Я пытался сделать его как можно более простым:Как решить: -1: ошибка: нет правила для создания цели `/home/xxxxx/opencv-3.0.0/lib/libopencv_xphoto.so.3.0.0 ', необходимой для` xxxxx'. Stop

project(xxxxx) 
cmake_minimum_required(VERSION 2.8) 
aux_source_directory(. SRC_LIST) 
find_package(OpenCV) 
message("Libs: ${OpenCV_LIBS}") 
message("Include Dir: ${OpenCV_INCLUDE_DIRS}") 
include_directories(${OpenCV_INCLUDE_DIRS}) 
add_executable(${PROJECT_NAME} ${SRC_LIST}) 
target_link_libraries(${PROJECT_NAME} 
${OpenCV_LIBS} 
) 

все, что я имею в моей main.cpp является:

#include <opencv2/core.hpp> 

и

cv::UMat trqw; 

я получаю «Нет правила, чтобы сделать целевой ". Ошибка указывает на то, что она ищет в папке «opencv-3.0.0/lib /», которая не существует, она должна искать в «opencv-3.0.0/build/lib /». Я сделал что-то не так, когда я построил OpenCV, что пакет CMAKE выглядит не в том месте, и если нет, то лучший способ для моего CMakeLists.txt настроить его для поиска в правильной папке? Я попытался «$ OPENCL_LIBRARIES» в вызове target_link_libraries и без изменений.

Спасибо!

---- редактировать ----------------

да, я есть find_package (OpenCV) в моем CMakeLists.txt как хорошо, спасибо! Я также попробовал find_package (OpenCV 3.0) и find_package (OpenCV 3.0 REQUIRED) безрезультатно.

---------- редактировать --------------- выход

message("Libs: ${OpenCV_LIBS}") # I added it to the orig question 

Libs: opencv_xphoto; opencv_xobjdetect; opencv_ximgproc; opencv_xfeatures2d; opencv_tracking; opencv_text; opencv_surface_matching; opencv_stereo; opencv_saliency; opencv_rgbd; opencv_reg; opencv_optflow; opencv_line_descriptor; opencv_face; opencv_dpm; opencv_datasets; opencv_ccalib; opencv_bioinspired; opencv_bgsegm; opencv_aruco; opencv_adas; opencv_world; opencv_videostab; opencv_videoio; opencv_video; opencv_superres; opencv_stitching; opencv_shape; opencv_photo; opencv_objdetect; opencv_ml; opencv_imgproc; opencv_imgcodecs; opencv_highgui; opencv_hal; opencv_flann; opencv_features2d; opencv_core; opencv_calib3d

Включите Dir:

/home/xxxxx/opencv-3.0.0/build;/home/xxxxx/opencv-3.0.0/include;/home/xxxxx/opencv-3.0.0/include/ OpenCV; /home/xxxxx/opencv-3.0.0/modules/hal/include; /home/xxxxx/opencv-3.0.0/modules/core/include; /home/xxxxx/opencv-3.0.0/modules/flann /include;/home/xxxxx/opencv-3.0.0/modules/imgproc/include;/home/xxxxx/opencv-3.0.0/modules/ml/include;/home/xxxxx/opencv-3.0.0/modules/ фото/включить; /home/xxxxx/opencv-3.0.0/opencv_contrib-master/modules/reg/include; /home/xxxxx/opencv-3.0.0/opencv_contrib-master/modules/surface_matching/include;/дома/ххххх /opencv-3.0.0/modules/video/include;/home/xxxxx/opencv-3.0.0/modules/imgcodecs/include;/home/xxxxx/opencv-3.0.0/modules/shape/include;/home/ ххххх/OpenCV-3.0.0/модули/videoio/включают; /home/xxxxx/opencv-3.0.0/module s/highgui/включить; /home/xxxxx/opencv-3.0.0/modules/objdetect/include; /home/xxxxx/opencv-3.0.0/opencv_contrib-master/modules/optflow/include;/дома/ххххх/OpenCV -3.0.0/модули/superres/включают; /home/xxxxx/opencv-3.0.0/opencv_contrib-master/modules/tracking/include; /home/xxxxx/opencv-3.0.0/modules/ts/include;/главная/ххххх/OpenCV-3.0.0/opencv_contrib-мастер/модули/xobjdetect/включить; /home/xxxxx/opencv-3.0.0/opencv_contrib-master/modules/xphoto/include; /home/xxxxx/opencv-3.0. 0/opencv_contrib-мастер/модули/ADAS/включают; /home/xxxxx/opencv-3.0.0/opencv_contrib-master/modules/bgsegm/include; /home/xxxxx/opencv-3.0.0/opencv_contrib-master/modules/ биоинспирированный/включить; /home/xxxxx/opencv-3.0.0/opencv_contrib-master/modules/dpm/include; /home/xxxxx/opencv-3.0.0/opencv_contrib-master/modules/face/include;/дома/ххххх /opencv-3.0.0/modules/features2d/include;/home/xxxxx/opencv-3.0.0/opencv_contrib-master/modules/line_descriptor/include;/home/xxxxx/opencv-3.0.0/opencv_contrib-мастер/модули/заметность/включает; /home/xxxxx/opencv-3.0.0/opencv_contrib-master/modules/text/include; /home/xxxxx/opencv-3.0.0/modules/calib3d/include; /home/xxxxx/opencv-3.0.0/opencv_contrib-master/modules/ccalib/include;/home/xxxxx/opencv-3.0.0/opencv_contrib-master/modules/datasets/include;/home/xxxxx/opencv-3.0 0,0/opencv_contrib-мастер/модули/rgbd/включают; /home/xxxxx/opencv-3.0.0/opencv_contrib-master/modules/stereo/include; /home/xxxxx/opencv-3.0.0/modules/stitching/include ; /home/xxxxx/opencv-3.0.0/modules/videostab/include; /home/xxxxx/opencv-3.0.0/modules/world/include; /home/xxxxx/opencv-3.0.0/opencv_contrib-master/ модули/xfeatures2d/include; /home/xxxxx/opencv-3.0.0/opencv_contrib-master/modules/ximgproc/include; /home/xxxxx/opencv-3.0.0/opencv_contrib-master/modules/aruco/include

+0

Вы забыли 'find_package (OpenCV)' call? Какое содержимое переменной OpenCV_LIBS? – Tsyvarev

+0

Я честно не знаю, как найти содержимое OpenCV_LIBS, я подумал, что в пакете OpenCV есть эта информация, возможно, мне нужно отследить этот пакет и посмотреть, что он говорит? Благодарю. – Biaspoint

+1

Просто введите его значение в CMakeLists.txt после 'find_package()' call: 'message (" Libs: $ {OpenCV_LIBS} ")'. Помимо ссылки на OpenCV_LIBS, вы должны выпустить 'include_directories ($ {OpenCV_INLCUDE_DIR}' перед вызовом add_executable(). Также интереснее значение 'OpenCV_INLCUDE_DIR'. – Tsyvarev

ответ

1

Спасибо Цываресу за помощь!

set (OpenCV_DIR "/home/xxxxx/opencv-3.0.0/build/") 

перед тем

find_package(OpenCV 3.0 REQUIRED) 

в CMakeLists.txt

Спасибо!

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