2017-02-05 20 views
0

Я пытаюсь преобразовать кусок кода из Matlab в python. Я запускаю Ubuntu 16.04LTS и должен полагаться на Octave, чтобы запустить ссылочный код (Matlab не устанавливает с помощью избыточной ошибки). Во всяком случае, никогда не использовав Octave, прежде чем это возможно, я пропустил шаг, но я не могу найти решение, проведя день, просматривая по всему Интернету.Octave: может компилировать mex, но получить ошибку: «не удалось установить функцию .mex-файла»

Часть кода использует файл mex. Я могу скомпилировать его с mkoctfile --mex gradientMex.cpp или mex --mex gradientMex.cpp. Я не получаю вывод, но в моем рабочем каталоге создается файл gradientMex.mex. Однако, когда я пытаюсь использовать gradientMex(), я получаю ошибку failed to install .mex file function 'gradientMex'. Есть ли что-то, что мне нужно сделать после компиляции файла mex?

В случае любого использования, проект, который я уверен, преобразование является https://github.com/autocyz/DSST, мне нужно, чтобы скопировать некоторые из зависимостей отсюда: https://github.com/pdollar/toolbox/tree/1a3c9869033548abb0c7a3c2aa6a7902c36f39c2/channels/private (wrappers.hpp и sse.hpp)

+1

Хммм. Может быть, скомпилировать с помощью 'mkoctfile -mex -DMATLAB_MEX_FILE gradientMex.cpp'? – Dario

+0

Похоже, он работает! Теперь я получаю еще одну несвязанную ошибку. Исправит это, и если вы представите свой комментарий в качестве ответа, я могу его принять. –

ответ

2

В исходном коде этого конкретного проекта, код, необходимый для загрузки mex-файлов в matlab/octave, включен в раздел #ifdef MATLAB_MEX_FILE, но mkoctfile не определяет эту переменную по умолчанию. Таким образом,

mkoctfile --mex -DMATLAB_MEX_FILE gradientMex.cpp 

держит вас в движении. Тем не менее, вы изучаете территорию, где совместимость между matlab и октавой действительно минимальна, и я ожидал бы других ошибок. YMMV, но, возможно, установка matlab может оказаться менее болезненной, чем перенос проекта на октаву, особенно если ваша лицензия Matlab включает в себя поддержку установки. Удачи.

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

  • Нет связанных вопросов^_^