【发布时间】:2021-10-27 11:35:46
【问题描述】:
我正在尝试编译我根据 mathworks here(创建 C++ MEX 源文件)给出的规范创建的 c++ mex 函数。但是,按照thread 中的答案步骤在 linux 环境中链接 Eclipse 4.4.2 和 Matlab R2015a(旧但我发现的唯一一个)后,我收到以下错误:
undefined reference to `get_function_ptr' mpi_pevd_mex_f line 79, external location: C:\Program Files\MATLAB\R2021a\extern\include\MatlabDataArray\detail\ExceptionHelpers.hpp C/C++ Problem
我不知道还缺少什么。我一直在努力寻找解决方案,但到目前为止没有任何用处。
感谢您的帮助。
【问题讨论】:
-
我猜你需要“链接”必要的库。
-
(1) 在标题中说“Windows”,在问题正文中说“Linux”。请清楚您使用的是什么系统。 (2) “Eclipse”是指 IDE? (3) 您应该使用
mex命令来构建您的 MEX 文件,因为手动设置所有正确的变量和选项非常困难。 (4) 如果您在 Windows 机器上按照 Linux 的说明进行操作,则必须调整指定的路径,而不仅仅是将glnxa64替换为任何 Windows 版本。 Windows 上的 MATLAB 将库存储在与 Windows 不同的位置。 -
另外,使用
-v选项运行mex将显示它用于构建 MEX 文件的所有编译器设置。您可以尝试将它们复制到 Eclipse 中。您链接的问答尝试为 C MEX 文件而不是 C++ 设置 Eclipse。在编写 Q&A 时,C++ API 并不存在。 -
@CrisLuengo 1) 我正在使用 Windows。在正文中,我只是指定我在问答中遵循的说明是针对 Linux 的。 2) 是的,我说的是 Eclipse IDE 3) 我也在 Matlab 中使用 mex 命令,但我想从 Eclipse 调试函数,而不是在代码中设置标志并猜测它在哪里崩溃。 4)我确定路径没问题,我对其余设置有疑问。例如,我发现对于 windows 的工件扩展名应该是 mexw64,而不是 mexa64;但我不知道是否应该更改其他设置。
标签: c++ eclipse function matlab mex