неопределенная ссылка на `cv :: error (int, std :: string const &, char const *, char const *, int) ' - PullRequest
0 голосов
/ 01 июля 2019

Я хочу создать библиотеку .so C ++ со ссылкой на OpenCV с Visual Studio. (Моя цель - сделать apk, который использует .so файл в Unity)

Я создал кросс-платформенный проект динамической разделяемой библиотеки в Visual Studio и установил правильные настройки проекта.

enter image description here В Linker> Input> Additional Dependencies я добавил путь к файлу openCV .so, загруженному из здесь

В Visual Studio я могу создать приведенный ниже код.

void OpenCVForAndroid::TestMethod()
{
    cv::Mat img(10, 10, CV_8UC1);
}

Однако приведенный ниже код допускает ошибки.

void OpenCVForAndroid::TestMethod()
{
    void* ddd = malloc(sizeof(int));
    cv::Mat img(100, 100, CV_8UC4, ddd);
}

1> C: \ Users \ ддд \ Downloads \ OpenCV-4.1.0-андроид-SDK \ OpenCV-андроид-SDK \ SDK \ родной \ JNI \ включать \ opencv2 / ядро ​​/ mat.inl.hpp: 548: неопределенная ссылка на cv::error(int, std::string const&, char const*, char const*, int)

1> C: \ Users \ ддд \ Downloads \ OpenCV-4.1.0-андроид-SDK \ OpenCV-андроид-SDK \ SDK \ родной \ JNI \ включать \ opencv2 / ядро ​​/ mat.inl.hpp: 561: неопределенная ссылка на cv::error(int, std::string const&, char const*, char const*, int)

Это потому, что конструктор Mat (int rows, int cols, int type, void *data, size_t step=AUTO_STEP) содержит cv::error, и компоновщик не смог его найти.

Я думал, что libopencv_java4.so будет иметь cv::error .. но, возможно, это не так.

Что не так с моим кодом или настройками? Где определено cv::error? 1035 *

Заранее спасибо: D

1 Ответ

0 голосов
/ 01 июля 2019

Я не знаю причину, по которой проблема возникла в версии 4.1.0. Однако проблема была решена после изменения версии OpenCV с 4.1.0 на 3.4.6 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...