我想在 CLion 中而不是在 MATLAB 中编译 MEX 文件(MATLAB 可执行文件)(这对编写 C 代码没有帮助)。但是,MEX 文件需要 #include mex.h(pp),这在普通 C++ 中不可用。而且,没有main功能的格式是不同的。
我正在使用 MATLAB R2018b 并希望使用 C++11 使用新的 C++ API for MEX-files。但是,我也可以使用旧的 API。
我试过查看CMake 的 FindMatlab 模块和其他几个位置。然而,大多数其他指南已经过时,甚至它们的参考链接也无法连接到它们的原始页面。
我是 CMake 的绝对新手,我不知道从哪里开始。
我目前无法使用#include "mex.h",#include "mex.hpp",#include "mexAdapter.hpp"等我也无法整理的功能没有main功能。
非常感谢任何可以通过上传或描述CMakeLists.txt必要文件来提供帮助的人  。
要编译 MEX 文件,您的 CMake 文件应包含:
find_package(Matlab)
matlab_add_mex(NAME mex_file_name SRC source_file.cpp)
mex_file_name是目标的名称,扩展名会自动添加。这是一个普通目标,您可以在该目标上使用set_target_properties、target_compile_definitions等。
如果您的 MEX 文件需要链接到库,请LINK_TO library在命令末尾添加matlab_add_mex。
关于使用新的 C++ API:我不记得是否有必要将标志添加R2018a到matlab_add_mex调用中。当使用新的 C API(复数交错)而不是旧的 C API(单独的复数)时,此标志是必需的。我认为这对于 C++ API 来说不是必需的,但如果无法编译,请添加此标志以查看是否有帮助。