Ошибка файла FORTRAN-MATLAB MEX - PullRequest
1 голос
/ 06 апреля 2011

Это Subhash.У меня возникли проблемы при связывании фортран-matlab mex файлов.Я бегу MATLAB R2010a.Я пытаюсь изменить подпрограммы Fortran в MATLAB.Я установил MSYS, MinGW и Gfortran.Я также скачал и распаковал gnumex в папку c: \ documents \ MATLAB.Я ввел gnumex для запуска настроек установки.В этот момент я вижу всплывающее окно и ввел следующее:

  1. корневой каталог MinGW ---> Указанный в сторону c: \ mingw b) корневой каталог
  2. Cygwin's-----> оставлено пустым c)
  3. Путь к g95.exe ------> c: \ mingw \ bin
  4. Путь к gfortran.exe ------> c: \ program files \ gfortran \ bin e)
  5. путь к утилитам gnumex ------> c: \ users ..... \ matlab \ gnumex
  6. средатип соединения ------> MinGW
  7. генерирует mex dll или engine -----> mex
  8. язык для компиляции -------> fortran 77
  9. добавить заглушку ------> нет
  10. уровень оптимизации -----> -O3

  11. путь к библиотекам и .defфайлы c: \ users ... \ Roaming \ MathWorks \ MATLAB \ R2010a \ gnumex

  12. Mex файл опций для создания: c \ users ... \ Roaming \ MathWorks \ MATLAB \ R2010a\ mexopts.bat

Выше приведены мои установки для mex с gnumex.Когда я нажимаю на make-файл опций, появляется предупреждающее сообщение, которое гласит: «не могу исправить mex.pl .....» не может открыть c: ... \ R2010a \ bin \ mex.pl для записи "

и когда я нажимаю «ОК», снова появляется сообщение «Подтвердить перезапись mexopts.bat». Я нажимаю «Подтвердить» и файл opt создается.

На этом этапе у меня должна быть готова настройка mex. Но когда язапустите примеры Fortran Mex xtimesy.f и т. д. (я использую mex filename.f в командной строке), и я получаю следующую ошибку

g77: getValidInputLinkLibraries: нет такого файла или каталога c: \ prog ~1 \ MATLAB \ R2010A \ BIN \ MEX.PL: Ошибка: не удалось установить ссылку на xtimesy.mexw32. Ошибка при использовании ---> mex at 222. Не удалось завершить успешно.

Я пытался удалить эту программу несколько раз,но в конечном итоге с той же ошибкой. Может кто-нибудь, пожалуйста, дайте мне знать, где я иду не так. Разве это не правильная процедура для подключения g77? Пожалуйста, пролите немного света на это.

Я ценю ваше время ..

Спасибо.

1 Ответ

1 голос
/ 21 апреля 2011

Недавно я попытался изменить некоторые процедуры на фортране и потерпел неудачу из-за плохой поддержки компиляторов фортрана матлабом в windows. Я справился с этой проблемой, используя f2c для преобразования кода на языке Fortran в C, затем создав в C подпрограмму шлюза, которая вызывает автоматически сгенерированные функции кода C, и скомпоновал результат с помощью компилятора visual studio 2008, который прекрасно интегрируется с matlab (free express версии издания достаточно, вы также сможете использовать ее для отладки).

Вы можете получить f2c из http://www.netlib.org/f2c/. Вы должны связать полученный код C с библиотекой f2c, которую вам, возможно, также придется собрать из исходников.

Я знаю, все это звучит очень сложно, но это было самое простое решение, которое я нашел.

...