Установка Windows OpenCV с CLion

Я хочу настроить OpenCV на Windows для CLion IDE. Я пытался с OpenCV 3.1 и 2.4 с тем же результатом. У меня Windows 10 64 бит. CLion использует среду Cygwin.

Что я сделал до сих пор:
1. Загрузил исполняемый файл из OpenCV и запустил его (он распаковал пакет). Мой путь E: / opencv
2. Добавил переменную OpenCV_DIR и добавил ее в путь
3. Добавил это в мой проект CMakeLists.txt:

set(OpenCV_LIB_PATH E:/opencv/build/x64/vc12/lib)
set(OpenCV_LIB_DIR E:/opencv/build/x64/vc12/lib)
set(OpenCV_LIBS E:/opencv/build/x64/vc12/lib)
set(CMAKE_PREFIX_PATH E:/opencv/build)
set(OpenCV_DIR E:/opencv/build/x64/vc12)
include_directories(E:/opencv/build/include)
FIND_PACKAGE(OpenCV REQUIRED)

target_link_libraries(good ${OpenCV_LIBS} )

Мне удалось использовать OpenCV Mat в моей программе (библиотеки видны), но я получаю сообщение об ошибке при попытке открыть изображение.

Моя программа: (только пример)

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>


using namespace cv;
using namespace std;

int main( int argc, char** argv )
{
    string imageName("../data/test.png");
    if( argc > 1)
    {
        imageName = argv[1];
    }
    Mat image;
    image = imread(imageName.c_str(), IMREAD_COLOR);
    if( image.empty() )
    {
        cout <<  "Could not open or find the image" << std::endl ;
        return -1;
    }
    namedWindow( "Display window", WINDOW_AUTOSIZE );
    imshow( "Display window", image );
    waitKey(0);
    return 0;
}

Проблема: Когда я запускаю проект, я получаю сообщение об ошибке:

/cygdrive/d/projects/good/src/main.cpp:17: undefined reference to `cv::imread(std::string const&, int)'
/cygdrive/d/projects/good/src/main.cpp:17:(.text+0xc4): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `cv::imread(std::string const&, int)'
/cygdrive/d/projects/good/src/main.cpp:23: undefined reference to `cv::namedWindow(std::string const&, int)'
/cygdrive/d/projects/good/src/main.cpp:23:(.text+0x177): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `cv::namedWindow(std::string const&, int)'
/cygdrive/d/projects/good/src/main.cpp:24: undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'
/cygdrive/d/projects/good/src/main.cpp:24:(.text+0x1a8): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `cv::_InputArray::_InputArray(cv::Mat const&)'
/cygdrive/d/projects/good/src/main.cpp:24: undefined reference to `cv::imshow(std::string const&, cv::_InputArray const&)'
/cygdrive/d/projects/good/src/main.cpp:24:(.text+0x1ed): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `cv::imshow(std::string const&, cv::_InputArray const&)'
/cygdrive/d/projects/good/src/main.cpp:25: undefined reference to `cv::waitKey(int)'
/cygdrive/d/projects/good/src/main.cpp:25:(.text+0x215): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `cv::waitKey(int)'
CMakeFiles/good.dir/src/main.cpp.o: In function `cv::Mat::~Mat()':
E:/opencv/build/include/opencv2/core/mat.hpp:278: undefined reference to `cv::fastFree(void*)'
E:/opencv/build/include/opencv2/core/mat.hpp:278:(.text$_ZN2cv3MatD1Ev[_ZN2cv3MatD1Ev]+0x36): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `cv::fastFree(void*)'
CMakeFiles/good.dir/src/main.cpp.o: In function `cv::Mat::operator=(cv::Mat const&)':
E:/opencv/build/include/opencv2/core/mat.hpp:298: undefined reference to `cv::Mat::copySize(cv::Mat const&)'
E:/opencv/build/include/opencv2/core/mat.hpp:298:(.text$_ZN2cv3MataSERKS0_[_ZN2cv3MataSERKS0_]+0x110): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `cv::Mat::copySize(cv::Mat const&)'
CMakeFiles/good.dir/src/main.cpp.o: In function `cv::Mat::release()':
E:/opencv/build/include/opencv2/core/mat.hpp:367: undefined reference to `cv::Mat::deallocate()'
E:/opencv/build/include/opencv2/core/mat.hpp:367:(.text$_ZN2cv3Mat7releaseEv[_ZN2cv3Mat7releaseEv]+0x44): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `cv::Mat::deallocate()'

Большое спасибо.

Ответы на вопрос(0)

Ваш ответ на вопрос