exponenta event banner

MinGW-w64 Компилятор

Компилятор MinGW-w64 можно использовать для создания MEX-файлов, интерфейса MATLAB ® к библиотеке C++ и автономных приложений MATLAB и MAT-файлов. Дополнительные сведения см. в разделе «Поддержка MATLAB компилятора MinGW-w64 C/C + +».

Установить компилятор MinGW-w64

Для установки компилятора используйте меню Add-On.

  • На вкладке Главная страница MATLAB в разделе Среда щелкните Надстройки > Получить надстройки.

  • Выполните поиск MinGW или выберите из списка Элементы (Features).

Строительство yprime.c Пример

Вы можете протестировать компилятор MinGW ®, создав yprime.c пример. Скопируйте исходный файл в папку для записи.

copyfile(fullfile(matlabroot,'extern','examples','mex','yprime.c'),'.','f')

Если в системе установлен только компилятор MinGW, mex команда автоматически выбирает MinGW. Перейдите к следующему шагу. Однако при наличии нескольких компиляторов C или C++ используйте mex -setup для выбора MinGW.

mex -setup

Создайте файл MEX.

mex yprime.c

MATLAB отображает сообщение «Building with», показывающее, какой компилятор использовался для построения файла MEX.

Запустите функцию.

yprime(1,1:4)

Дополнительные сведения см. в разделе Устранение неполадок и ограничения при компиляции файлов C/C + + MEX с MinGW-w64.

Папка установки MinGW не может содержать места

Не устанавливайте MinGW в папку с пробелами в имени пути. Например, не используйте:

C:\Program Files\mingw-64

Вместо этого используйте:

C:\mingw-64

Обновление файлов MEX для использования компилятора MinGW

Если исходные файлы MEX построены с помощью другого компилятора, поддерживаемого MATLAB, возможно, потребуется изменить код для сборки с помощью компилятора MinGW. Например:

  • Библиотека (.lib) файлы, созданные Microsoft ® Visual Studio ®, несовместимы с MinGW.

  • Очистка объекта невозможна, если создается исключение с помощью mexErrMsgIdAndTxt функция из файлов C++ MEX, что приводит к утечке памяти.

  • Непроверенное исключение в файлах C++ MEX, скомпилированных с помощью MinGW, приводит к аварийному завершению работы MATLAB.

  • MEX-файлы с переменными, содержащими большие объемы данных, не могут быть скомпилированы, так как компилятору не хватает памяти.

Связанные темы

Внешние веб-сайты