2016-03-11 2 views
0

Я компилирую opencv-программы с cmake. код выглядит следующим образом:Ошибка cmake: opencv2/opencv.hpp: opencv2/opencv.hpp: Нет такого файла или каталога

DisplayImage.cpp:

#include <stdio.h> 
#include <opencv2/opencv.hpp> 
using namespace cv; 
int main(int argc, char** argv) 
{ 
    if (argc != 2) 
    { 
     printf("usage: DisplayImage.out <Image_Path>\n"); 
     return -1; 
    } 

    Mat image; 
    image = imread(argv[1], 1); 

    if (!image.data) 
    { 
     printf("No image data \n"); 
     return -1; 
    } 
    namedWindow("Display Image", WINDOW_AUTOSIZE); 
    imshow("Display Image", image); 

    waitKey(0); 

    return 0; 
} 

CMakeLists.txt:

cmake_minimum_required(VERSION 2.8) 

project(DisplayImage) 

set(OpenCV_DIR /home/lmk/opencv-3.1.0/release) 

include_directories(${OpenCV_INCLUDE_DIRS}) 

add_executable(DisplayImage DisplayImage.cpp) 

target_link_libraries(DisplayImage ${OpenCV_LIBS}) 

Я поставил DisplayImage.cpp и CMakeLists.txt в папке тест в моем личной домашней папке, а именно /home/lmk/test/. Затем я использую командные строки:

ЛМК @ ЛМК-виртуальная машина: ~/тест $ MkDir сборки
ЛМК @ ЛМК-виртуальная машина: ~/тест $ кд построить
ЛМК @ ЛМК-виртуальный -machine: ~/тест/сборка $ CMake ..

которые дают мне:

- идентификация C компилятор GNU 5.3.0
- The CXX Compi ler Идентификация - GNU 5.3.0
- Проверить работоспособность компилятора C:/usr/bin/cc
- Проверить работоспособность компилятора C:/usr/bin/cc - works
- Обнаружение компилятора C ABI Информация
- Детектирование C компилятор информации ABI - сделано
- Проверьте, работает CXX компилятор:/USR/бен/C++
- Проверьте, работает CXX компилятор:/USR/бен/C++ - работает
- - Обнаружение компилятора CXX ABI info
- Обнаружение компилятора CXX Информация ABI - сделано
- Конфигурирование сделано
- Генерирование сделано
- Постройте файлы были записаны:/дома/ЛМК/тест/построить

Но когда я использую:

зависимостей Сканирование целевой DisplayImage
[100%] Строительство CXX объект CMakeFiles/DisplayImage.dir/DisplayImage.cpp.o
/home/lmk/test/DisplayImage.cpp ::30: fatal eror: opencv2/opencv.hpp: Нет такого файла или каталога
компиляция завершена.
делают [2]: * [CMakeFiles/DisplayImage.dir/DisplayImage.cpp.o] Ошибка 1
Марка [1]: *
[CMakeFiles/DisplayImage.dir/все] Ошибка 2
марка: ** * [все] Ошибка 1

Вы konw почему? Я использую opencv 3.1.0 и cmake 2.8.12.2 в терминале ubuntu 14.04 в VM!

+0

я решил ошибку, modiflying CMakeLists.txt: 'cmake_minimum_required (версия 2.8) проект (DisplayImage) комплект (OpenCV_DIR /home/lmk/opencv-3.1.0/release) include_directories (/ USR/местные/OpenCV-3.1.0/включить) add_executable (DisplayImage DisplayImage.cpp) target_link_libraries (DisplayImage /usr/local/opencv-3.1.0/lib) '. Но существует новая ошибка: ** 'DisplayImage.cpp :(. Text + 0x34): неопределенная ссылка на 'cv :: imread (cv :: String const &, int)'' ** –

ответ

0

Почему вы не используете «типичный» способ, используя find_package()?

Попробуйте повторить шаги в учебнике this и сообщите, что происходит.

+0

'find_package()'? Не могли бы вы рассказать мне подробности? Я установил свой opencv 3.1.0 в /usr/local/opencv-3.1.0. Это первый раз, когда я использую cmake для компиляции. –

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