Я вызвал mex-файл, скомпилированный с использованием mexopencv из matlab. Программа запускается в matlab и не создает проблем, но когда я конвертирую matlab в разделяемую библиотеку c ++, используя matlab deploytool и компилирую в приложение exe, при запуске exe я получаю сообщение об ошибке, что mexfile не найден или он недопустим путь к файлу или каталог. Что может быть причиной этого? Должен ли я добавить какие-либо дополнительные библиотеки или путь в мой Makefile или я должен изменить системный путь? Я использую Linux и MATLAB R2012a, mexopencv.
Обратите внимание, что mex-файл может быть вызван из matlab, и он дает вывод, но он не может быть вызван exe-файлом. Я пытаюсь запустить модуль facedetection, который уже есть в примерах mexopencv. В качестве входных данных требуется файл xml. Почему он не может обнаружить mex-файл и xml-файл?
Deploytool должен принести файлы MEX, поэтому я должен предположить, что зависимости файлов mexopencv не включены в сгенерированную библиотеку и не доступны через LD_LIBRARY_PATH
или же LD_PRELOAD
, Это могут быть библиотеки OpenCV (например, libopencv_core.so.2.4, libopencv_imgproc.so.2.4 и т. Д.).
Проверьте наличие дополнительных зависимостей mex-файлов mexopencv с ldd
(для пользователей Windows используйте Зависимость Уокер). РЕДАКТИРОВАТЬ: Тогда добавь их!
Других решений пока нет …