Matlab 如何配置CMake以编译MEX文件?

Matlab 如何配置CMake以编译MEX文件?,matlab,cmake,mex,Matlab,Cmake,Mex,我想在CLion中编译MEX文件(MATLAB可执行文件),而不是在MATLAB中编译(这对编写C代码没有帮助)。但是,MEX文件需要包含Max .h(pp)的μx,这在普通C++中是不可用的。此外,没有main功能的格式也不同 我正在使用MatlabR2018B,希望使用C++11使用。但是,我也可以使用旧的API 我试过在其他几个地方查看和查看。然而,大多数其他指南已经过时,甚至它们的参考链接也无法连接到原始页面 我在CMake是一个绝对的新手,我不知道从哪里开始 我目前无法使用#inclu

我想在CLion中编译MEX文件(MATLAB可执行文件),而不是在MATLAB中编译(这对编写C代码没有帮助)。但是,MEX文件需要包含Max .h(pp)的μx,这在普通C++中是不可用的。此外,没有
main
功能的格式也不同

我正在使用MatlabR2018B,希望使用C++11使用。但是,我也可以使用旧的API

我试过在其他几个地方查看和查看。然而,大多数其他指南已经过时,甚至它们的参考链接也无法连接到原始页面

我在CMake是一个绝对的新手,我不知道从哪里开始

我目前无法使用
#include“mex.h”
#include“mex.hpp”
#include“mexAdapter.hpp”
等。我也无法编译没有
主函数的函数


非常感谢任何人通过上传或描述必要的
CMakeLists.txt
文件来提供帮助。

要编译MEX文件,您的CMake文件应包含:

find_package(Matlab)
matlab_add_mex(NAME mex_file_name SRC source_file.cpp)
mex\u file\u name
是目标的名称,扩展名将自动添加。这是一个普通目标,您可以在该目标上使用
设置目标属性
目标编译定义
,等等

如果MEX文件需要链接到库,请在
matlab\u add\u MEX
命令末尾添加
link\u to library


关于使用新的C++ API:我不记得是否需要将<代码> R2018A//> >标志添加到<代码> Matabl AddixMeX < /Cudio>调用。当使用新的C API(复数交织)而不是旧的C API(独立复数)时,此标志是必需的。我认为C++是不必要的,但是如果没有编译,请添加这个标志来看看它是否有用。< /P>我不知道克利永是如何工作的,但是你能不能创建一个叫做“MyCug”关键字来调用MATLAB编译器吗?我不确定你是否可以从外部编译。你可以从命令开始。在使用它之前,您需要调用
find_-package(Matlab)
。这个命令的用法非常类似于“standard”
add_executable
add_library
。但是,我现在发现一些错误,例如对“mxGetSingles_800”的未定义引用到处都会出现。我尝试过将matrix.h包含在顶部,但仍然不起作用。@veritas9872:请为此提出一个新问题,包括一个。我不可能从你评论中的简短描述中知道什么是错的。