Octave:可以编译mex,但得到错误:"无法安装.mex文件功能"

时间:2017-02-05 17:28:56

标签: ubuntu octave mex

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

部分代码使用mex文件。我可以使用{"error":[{"errorId":1616,"domain":"returnErrorDomain","severity":"ERROR","category":"REQUEST","message":"Invalid Input.","parameter":[{"value":"data","name":"parameter"}],"longMessage":"Invalid Input.","httpStatusCode":400}]}mkoctfile --mex gradientMex.cpp进行编译。我没有输出,但在我的工作目录中生成了mex --mex gradientMex.cpp文件。但是,当我尝试使用gradientMex.mex时,我收到错误gradientMex()。编译mex文件后我需要做些什么吗?

如果它有用,我转换的项目是https://github.com/autocyz/DSST,我需要从这里复制一些依赖项:https://github.com/pdollar/toolbox/tree/1a3c9869033548abb0c7a3c2aa6a7902c36f39c2/channels/privatefailed to install .mex file function 'gradientMex'和{{1} })

1 个答案:

答案 0 :(得分:2)

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

mkoctfile --mex -DMATLAB_MEX_FILE gradientMex.cpp

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