linux中Matlab编译m文件

一、将m文件编译生成可执行文件

1、依赖于gcc编译器,保证有编译器,进入matlab【输入matlab】输入【只需要配一次】

>> mex -setup

MEX 配置为使用 \'gcc\' 以进行 C 语言编译。

警告: MATLAB C 和 Fortran API 已更改,现可支持

包含 2^32-1 个以上元素的 MATLAB 变量。不久以后,

您需要更新代码以利用

新的 API。您可以在以下网址找到更多的相关信息:n http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html。

要选择不同的语言,请从以下选项中执行一种命令:

mex -setup C++

mex -setup FORTRAN

输入

>> mex -setup C++

2、编译

mcc -mv my_fun_cal_safeguard_rate.m

3、生成可执行文件

my_fun_cal_safeguard_rate

run_my_fun_cal_safeguard_rate.sh

4、配置了MCR

配置MCR:https://www.cnblogs.com/judes/p/12176751.html

而这个run_xxx.sh是自动加入MCR路径的脚本,我一直没使用成功过,如果MCR配置好了,可直接./my_fun_cal_safeguard_rate

二、生成动态库

1、依赖于gcc编译器,保证有编译器,进入matlab输入【只需要配一次】

>> mex -setup

MEX 配置为使用 \'gcc\' 以进行 C 语言编译。

警告: MATLAB C 和 Fortran API 已更改,现可支持

包含 2^32-1 个以上元素的 MATLAB 变量。不久以后,

您需要更新代码以利用

新的 API。您可以在以下网址找到更多的相关信息:n http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html。

要选择不同的语言,请从以下选项中执行一种命令:

mex -setup C++

mex -setup FORTRAN

输入

>> mex -setup C++

2、将m文件编译成动态库

mcc -W cpplib:libmy_fun_cal_safeguard -T link:lib my_fun_cal_safeguard_rate.m

至于如何使用还在研究中