Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)


 

 

 

 



Настройка среды для сборки проекта



Перед началом создания проекта для будущего MEX-файла нужно убедиться в правильности настройки среды (переменных окружения) компилятора, который будет использоваться для компиляции динамической библиотеки.

MATLAB при установке запрашивает тип используемого компилятора и настраивает командные файлы, которые будут компилировать и собирать MEX-файлы при помощи указанного компилятора. Поэтому последовательность, в которой на компьютер устанавливаются компилятор и MATLAB, является довольно важной. Лучше, чтобы сначала на компьютер был установлен компилятор C (Microsoft Visual C++ 5.0), а затем – MATLAB.

В простых случаях, например, когда весь текст будущего расширения MATLAB содержится в единственном файле, имеется возможность вызвать последовательность операций сборки (компиляция, связывание и т.п.) прямо из среды MATLAB – при помощи команды MEX. Указанная команда является обычным batch-файлом Windows, в котором содержатся вызовы компилятора и других необходимых программ. Поэтому ею же можно воспользоваться для сборки расширения и в командной строке MS‑DOS.

Для работы в этом режиме нужно, чтобы были правильно настроены переменные среды окружения, необходимые компилятору при работе.

Проверьте следующие установки, вызвав команду set | more в окне MS‑DOS:

 

MSVCDir=d:\program files\devstudio\vc

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

 

include=%MSVCDir%\include;%MSVCDir%\mfc\include

lib=%MSVCDir%\lib;%MSVCDir%\mfc\lib

path=…(пути к прочим программам)…;%MSVCDir%\bin;c:\MATLAB\bin

Если что-то не в порядке, надо поправить файл autoexec.bat (или, под Windows NT, изменить значения в “Панель Управления/Система”) так, чтобы указанные пути соответствовали реально установленным программам.

После выполнения указанных настроек имеет смысл протестировать всю систему сборки. Для этого нужно скопировать к себе в рабочий каталог файл yprime.c из папки \MATLAB\extern\examples\mex. Затем, в среде MATLAB, сделать рабочий каталог текущим при помощи команды cd.

Скомпилируйте и вызовите тестовую программу. Если переменные среды окружения настроены правильно, то вы должны получить следующий результат:

 

» mex yprime.c

» yprime(1,1:4)

 

ans =

 

2.0000 8.9685 4.0000 -1.0947

Данный пример содержит решение упрощенной задачи трех тел (Земля, Луна и легкий спутник) с координатами в центре масс системы Земля-Луна. Полученные числа являются координатами спутника и компонентами его скорости через одну единицу времени. В каталоге \MATLAB\extern\examples\mex есть файл yprime.m, решающий ту же задачу на языке MATLAB.

Если расширение MATLAB состоит из нескольких исходных текстов, то сборку такого расширения все равно можно выполнить той же командой, например:

 

» mex circle.c square.obj rectangle.c shapes.lib

В более сложных случаях, когда проект сложный и содержит много исходных текстов, элементы пользовательского интерфейса (ресурсы) и т.п., можно специальным образом настроить проект непосредственно в интегрированной среде Visual C++. Для этого следует выполнить следующие действия:

1. создать проект DLL и добавить в него все необходимые исходные файлы, а также файл mexversion.rc;

2. создать DEF-файл для проекта и явно экспортировать единственную интерфейсную функцию:

 

LIBRARY MYFILE.DLL

EXPORTS mexFunction

3. включить созданный .DEF-файл в проект;

4. создать библиотеку импорта для MEX-функций из файла MATLAB.DEF, находящегося в каталоге \MATLAB\extern\include:

 

LIB /DEF:MATLAB\EXTERN\INCLUDE\MATLAB.DEF/OUT:mymeximports.lib

5. добавить эту библиотеку в проект;

6. добавить каталог \MATLAB\EXTERN\INCLUDE к другим include-каталогам в опциях препроцессора для проекта (Project/Settings/Preprocessor);

7. на этой же вкладке добавить MATLAB_MEX_FILE к списку предопределенных символов (Preprocessor definitions) для всех конфигураций (Release/Debug) проекта;

8. для отладки можно во вкладке Debug (Project/Settings/Debug) указать в качестве запускающей программы (Executable for debug session) для проекта саму программу MATLAB: \MATLAB\BIN\MATLAB.EXE. Тогда можно будет задавать точки остановки внутри вашего расширения MATLAB, просматривать значения его переменных, проходить его в пошаговом режиме и выполнять другие отладочные действия.



Просмотров 837

Эта страница нарушает авторские права




allrefrs.su - 2025 год. Все права принадлежат их авторам!