Настройка matlab для генерации C/C++ кода из m файлов в Windows

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

Я играю цифровыми фильтрами. При работе с ними нужно использовать свёртку или преобразование Фурье и прочие специфические функции. Естественно писать их с нуля смысла особого нет, но и искать вам придётся скорее всего долго..

И тут апогеем творчества MathWorks стал Matlab Coder который позволяет сгенерировать вам код на C/C++ из функции матлаба.

Наткнулся на подводный камень в виде необходимости установить VS для работы кодера. Почему было не сделать строчку в графическом интерфейсе не ясно..

Итак. Ставим VS (нам понадобится её компилятор). Ставим аккуратно выбирая из таблички на сайте матлаба нужную версию.

У меня 2013 матлаб, табличка говорит что Microsoft Visual C++ 2010 Professional нам вполне подойдёт.

Качаем ставим.

Теперь нужно воспользоваться командой:

mex -setup

Просто пшем её в Command Window матлаба и выполняем. У вас спросят какой компилятор настроить для использования.

Весь вывод команды такой:

Welcome to mex -setup.  This utility will help you set up  
a default compiler.  For a list of supported compilers, see  
https://www.mathworks.com/support/compilers/R2013a/win32.html

Please choose your compiler for building MEX-files:

Would you like mex to locate installed compilers [y]/n? y
 
Select a compiler:
[1] Lcc-win32 C 2.4.1 in C:\PROGRA~1\MATLAB\R2013a\sys\lcc
[2] Microsoft Visual C++ 2010 in C:\Program Files\Microsoft Visual Studio 10.0
[0] None

Compiler: 2

Please verify your choices:
Compiler: Microsoft Visual C++ 2010  
Location: C:\Program Files\Microsoft Visual Studio 10.0

Are these correct [y]/n? y

***************************************************************************

  Warning: MEX-files generated using Microsoft Visual C++ 2010 require
           that Microsoft Visual Studio 2010 run-time libraries be  
           available on the computer they are run on.
           If you plan to redistribute your MEX-files to other MATLAB
           users, be sure that they have the run-time libraries.

***************************************************************************

Trying to update options file: C:\Users\Администратор\AppData\Roaming\MathWorks\MATLAB\R2013a\mexopts.bat
From template:              C:\PROGRA~1\MATLAB\R2013a\bin\win32\mexopts\msvc100opts.bat
Done . . .

**************************************************************************

  Warning: The MATLAB C and Fortran API has changed to support MATLAB
           variables with more than 2^32-1 elements.  In the near future
           you will be required to update your code to utilize the new
           API. You can find more information about this at:
           https://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html  
           Building with the -largeArrayDims option enables the new API.

**************************************************************************

Вот впринципе и всё что нужно для работы. Очень странно, что всё делается командой… но это уже не нашего ума дело.

зы без этого матлаб будет выдавать ошибку matlab coder unknown compiler

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий