Octave: can compile mex, but get error: "failed to install .mex file function"

Octave: can compile mex, but get error: "failed to install .mex file function"

我正在尝试将一段代码从 Matlab 转换为 python。我是 运行ning Ubuntu 16.04LTS,需要依靠 Octave 来 运行 参考代码(Matlab 没有安装并出现神秘错误)。无论如何,之前从未使用过 Octave 可能我错过了一步,但我在互联网上搜索了一天后找不到解决方案。

部分代码使用了mex文件。我可以用 mkoctfile --mex gradientMex.cppmex --mex gradientMex.cpp 编译它。我没有得到任何输出,但在我的工作目录中生成了一个 gradientMex.mex 文件。但是,当我尝试使用 gradientMex() 时,出现错误 failed to install .mex file function 'gradientMex'。编译mex文件后我需要做些什么吗?

如果有用,我正在转换的项目是https://github.com/autocyz/DSST , I needed to copy some of the dependencies from here: https://github.com/pdollar/toolbox/tree/1a3c9869033548abb0c7a3c2aa6a7902c36f39c2/channels/privatewrappers.hppsse.hpp

在此特定项目的源代码中,将 mex 文件加载到 matlab/octave 所需的代码包含在 #ifdef MATLAB_MEX_FILE 部分中,但 mkoctfile 未定义该变量默认。所以

mkoctfile --mex -DMATLAB_MEX_FILE gradientMex.cpp

让你继续前进。但是,您正在探索 matlab 和 Octave 之间的兼容性非常小的领域,我预计会出现其他错误。 YMMV,但也许安装 matlab 可能比将项目移植到 Octave 更轻松,特别是如果您的 matlab 许可证包括安装支持。祝你好运。