八度:可以编译 mex,但得到错误:"failed to install .mex file function"



我正在尝试将一段代码从Matlab转换为python。我正在运行 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,我需要从这里复制一些依赖项:https://github.com/pdollar/toolbox/tree/1a3c9869033548abb0c7a3c2aa6a7902c36f39c2/channels/private(wrappers.hppsse.hpp(

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

mkoctfile --mex -DMATLAB_MEX_FILE gradientMex.cpp

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

最新更新