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

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

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

Чтобы установить компилятор, используйте меню Add-Ons.

  • На вкладке MATLAB Home, в разделе Environment, нажимают Add-Ons > Get Add-Ons.

  • Ищите 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 отображает “Создание с” сообщением, показывающим, какой компилятор использовался, чтобы создать файл MEX.

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

yprime(1,1:4)

Для получения дополнительной информации смотрите Поиск и устранение проблем и Ограничения при компиляции Файлы MEX C/C++ с MinGW-w64.

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

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

C:\Program Files\mingw-64

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

C:\mingw-64

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

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

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

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

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

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

Похожие темы

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