包括 matlab_add_mex 和 Cmake 的问题

Posted

技术标签:

【中文标题】包括 matlab_add_mex 和 Cmake 的问题【英文标题】:Include issues with matlab_add_mex and Cmake 【发布时间】:2021-08-18 09:57:14 【问题描述】:

大家,我一直在努力解决这个问题。我必须用 CMake 构建一个 mex 文件(.mexw64)。在simulink下一切正常,我可以使用

mex -ImyLib mySrc.cpp

但是当我使用 CMake 时:

find_package(myLib)
find_package(Matlab)
matlab_add_mex(NAME cmake_mySrc.mexw64 SRC mySrc.cpp LINK_TO myLib::myLib)

我遇到了以下问题:

fatal error: simstruc.h: No such file or directory

我不明白,因为 find_package(Matlab) 应该导入 simstruct.h 不是吗?

感谢您的帮助!

【问题讨论】:

【参考方案1】:

事实上,我们需要 Simulink 才能加载 Simstruc.h

find_package(myLib)
find_package(Matlab REQUIRED SIMULINK)
matlab_add_mex(NAME cmake_mySrc.mexw64 SRC mySrc.cpp LINK_TO myLib::myLib)

【讨论】:

以上是关于包括 matlab_add_mex 和 Cmake 的问题的主要内容,如果未能解决你的问题,请参考以下文章

cmake一个模块包括另一个模块

cmake 语法

CMake:包括外部库头文件

DirectX CMake 包括中断 Windows.h

为什么要使用CMake?

使用cmake或gcc在linux上创建一个可立即使用的安装包,包括shred依赖项