linux系统一直被认为是最稳定、性能最强的系统,其应用从个人电脑延伸到服务器、云计算等领域,特别是对于计算机视觉和机器学习应用,其开发和部署应用的移植和可移植性是最为重要的。MEX(Matlab Executable)是MATLAB在Windows、Linux和Mac OS X(全部支持64位和32位操作系统)中支持的一种可执行文件,其格式为“.mexw32/mexw64/mexmaci64”,其实际作用是可以执行编译的C/C++或者Fortran语言的程序代码,支持多种计算机架构,功能更强大,更稳定。本文介绍如何在Linux系统搭建MEX环境,具体过程如下。
#### (1) 搭建环境
Linux系统可以安装多种开发环境,这里介绍常用的Linux环境,如Ubuntu、Fedora、CentOS、Redhat等,在该环境下安装Matlab,Ubuntu系统安装Matlab可以通过终端命令来实现,可以参考以下步骤:
“`bash
# 下载Matlab
wget http://file.public.uninet.cn/36557_matlab_r2019a_glnxa64.zip
# 解压
unzip 36557_matlab_r2019a_glnxa64.zip
# 打开安装程序
cd ./36557_matlab_r2019a_glnxa64/
sudo ./install
# 后续按照提示操作,即可完成安装Matlab
#### (2) 搭建MEX环境
MEX环境可以通过MATLAB Compiler SDK来构建,MATLAB Compiler SDK是MATLAB的一组可扩展的编辑器,可以用于编译和部署MATLAB程序,编译程序中可以包含MATLAB代码和其他语言的代码,从而可以构建MEX环境。MATLAB Compiler SDK的安装非常简单,只需要在服务器上安装一个 compiler sdk 工具即可。
```bash
# 下载Matlab Compiler SDK
wget http://file.public.uninet.cn/36558_matlab_r2020a_glnxa64_compiler_sdk.2_2.zip
# 解压,安装
unzip 36558_matlab_r2020a_glnxa64_compiler_sdk.2_2.zip
sudo dpkg -i ./36558_matlab_r2020a_glnxa64_compiler_sdk.2_2_1-1.deb
# 生成MEX环境
source /usr/local/MATLAB/R2020a/bin/mexopts.sh
# 验证配置
mex -setup
#### (3) MEX环境运行
MEX环境可以加载MATLAB代码、C/C++或者Fortran等语言的程序,它们都编译为可执行文件格式,支持在Linux/Unix环境下进行调试,应用程序可以被直接分发和部署,可以使用Matlab编译器编译程序,下面运行一个示例程序:
“`matlab
>> x = rand(1,10);
>> y = mex_hello(x);
>> disp(y);
Hello!
上面的示例表明,该程序无论在Windows、Linux或者Mac OS X,都可以使用mex_hello()函数调用函数。
#### (4) 问题解决
有时候在Linux系统搭建MEX环境时可能会遇到不同的问题,比如如果在Linux上安装了多个Matlab版本,可能会出现错误,此时可以使用`mlock`命令解决,如果是新安装的Matlab报错,则可以使用`chown`命令修改文件权限以解决,例如:
```bash
# 解锁
sudo mlock -h
# 修改文件权限
sudo chown root:root /usr/local/MATLAB/R2020a/bin/mexopts.sh
#### 结论
通过本文介绍,可以了解如何在Linux系统搭建MEX环境,并提出一些常见的问题和解决方法。在搭建环境的过程中,可以使用相关的终