gpt4 book ai didi

matlab - 如何配置 CMake 来编译 MEX 文件?

转载 作者:太空宇宙 更新时间:2023-11-03 20:03:25 24 4
gpt4 key购买 nike

我想在 CLion 而不是 MATLAB 中编译 MEX 文件(MATLAB 可执行文件)(这对编写 C 代码没有任何帮助)。但是,MEX 文件需要 #include mex.h(pp),这在普通 C++ 上不可用。此外,没有main函数的格式是不同的。

我正在使用 MATLAB R2018b 并希望使用 the new C++ API for MEX-files 来使用 C++11 .但是,我也可以使用旧的 API。

我试过查看 CMake's FindMatlab module以及其他几个地方。但是,大多数其他指南都已过时,甚至它们的引用链接也无法连接到它们的原始页面。

我是 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_propertiestarget_compile_definitions 等。

如果您的 MEX 文件需要链接到库,请在 matlab_add_mex 命令末尾添加 LINK_TO library

关于使用新的 C++ API:我不记得是否有必要将 R2018a 标志添加到 matlab_add_mex 调用中。当使用新的 C API(复杂的交错)而不是旧的 C API(单独的复杂)时,此标志是必需的。我认为 C++ API 没有必要,但如果无法编译,请添加此标志以查看是否有帮助。

关于matlab - 如何配置 CMake 来编译 MEX 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54763204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com