而不是在Matlab中编译MEX中的MEX,而是一种替代方法是使用CMAKE工具。使用CMake可能是有利于构建大型MEX项目或建立具有许多外部依赖性的MEX。此示例是简单演示如何使用cmake轻松地编译Matlab Mex。
要在Linux下编译测试MEX,
首先将MATLAB_ROOT环境变量设置为已安装的MATLAB路径,
如'Export Matlab_root = / usr / local / matlab / r2012b',
然后,简单地做
mkdir构建
cd构建
cmake ../src.
使
制作安装
要在Windows下编译测试MEX,
首先将MATLAB_ROOT环境变量设置为已安装的MATLAB路径,
然后,使用CMake或CMake-GUI根据已安装的编译器(例如MSVC)生成构建项目,然后使用此编译器构建生成的项目。
测试MEX源代码位于/ src / mex / mexadd下面。默认情况下,编译的测试MEX'MEXADD'将安装到/ bin。C = MEXADD(A,B)基本上为1D或2D矩阵A和B的元素添加,返回矩阵C.没有。
添加新MEX源代码,例如“MEXXXX.CPP”,只需执行“MEXXXX.CPP”
1.在/ src / mex下添加新文件夹'mexxxx'
2.将一个行'add_subdirectory(mexxxx)'添加到cmakelists.txt下/ src / mex下
3.将cmakelists.txt复制到/ src / mex / mexadd到文件夹/ src / mex / mexxxx
4.在复制的CMAKELISTS.TXT中更改第一行以设置(CPP_FILE MEXXXX)
5.按照上述编译步骤进行操作
另外两个例子也可供选择
使用CMake建立CUDA支持的MEX金宝app
http://www.mathwands.com/matlabcentral/fileexchange/45505-cudamexcake.
使用CMake建立具有OpenMP支持的MEX金宝app
//www.tatmou.com/matlabcentral/fileexchange/45501-openmpmexcmake
方刘(2021)。mex_cake.(https://www.mathwands.com/matlabcentral/fileexchange/45522-mex_cake),Matlab中央文件兑换。检索到。
也可以看看:https://cmake.org/cmake/help/v3.3/module/findmatlab.html.
调试MEX文件时,我在使用cmake时遇到了麻烦。对于使用CMake构建的文件,MATLAB似乎不会加载新版本的功能。我怎样才能强迫它来做这件事?(目前我正在测试中重新启动matlab ....)
我不得不设置
set(cmake_find_library_prefix“lib”)和set(cmake_find_library_suffixes“.lib”)
我有一些问题。
什么是matlab.def?编译时,我会得到链接器错误。
如何将Simulink库中的MEXW6金宝app4文件中的?
这有助于很多,但是你的自定义findmatlab.cake会导致我在OS X上的麻烦。