无法使用 mkoctfile --mex 以八度音阶构建 mex 文件

Posted

技术标签:

【中文标题】无法使用 mkoctfile --mex 以八度音阶构建 mex 文件【英文标题】:Can not build a mex file in octave using mkoctfile --mex 【发布时间】:2017-05-17 09:24:12 【问题描述】:

我正在尝试以八度音阶构建 mex 文件。 Octave instructions 表示我们需要使用 mkoctfile --mex 来构建一个。我正在尝试构建的文件位于以下路径中:

> C:\devwork\Octave\boosted\toolbox\channels\private\rgbConvert.cpp

当我写作时

> mkoctfile --mex rgbConvert.cpp

我收到以下错误:

> g++: error: rgbConvert.cpp: No such file or directory g++: fatal
> error: no input files compilation terminated.

注意:我的当前目录设置正确。它位于 \devwork\Octave\boosted\toolbox\channels\private

谁能解释一下为什么会出现这个错误。

【问题讨论】:

您可以尝试使用-I 标志为mkoctfile 编译以明确包含给定here 的目录吗? 指定rgbConvert.cpp文件的路径,而不仅仅是文件名。 您似乎在使用 Piotr 工具箱。几个月前我在使用 Octave 时遇到了问题,并在这里调查了一些问题:***.com/questions/40896162/… @Eskapp:我认为您应该向上游 (Piotr) 传达必要的更改,我很确定他会整合它们。因此,fork 原始仓库,进行更改并添加拉取请求 @Eskapp 请检查***.com/questions/44144370/…。 .o 问题已解决。 【参考方案1】:

问题已解决:mkoctfile --mex -DMATLAB_MEX_FILE rgbConvertMex.cpp

因此,如果要将任何 Matlab 编译的 .mex 文件转换为 Octave 可执行文件,请执行以下两个步骤:

    修改 wrappers.hpp 文件,添加#include <stdlib.h> 保存文件。 简单运行:mkoctfile --mex -DMATLAB_MEX_FILE file_name .o 文件将被创建。

我用同样的方法做了,效果很好。

Eskapp 非常感谢发布 Octave 编译的 MEX 文件。您需要手动将文件添加到主工具箱。请在此处找到链接: https://github.com/Eskapp/Piotr_vision_extrafiles_Octave

希望它可以帮助其他人:)

【讨论】:

我很高兴你可以让它工作并同时学习一些有用的东西;)

以上是关于无法使用 mkoctfile --mex 以八度音阶构建 mex 文件的主要内容,如果未能解决你的问题,请参考以下文章

Octave:如何为 mkoctfile 指定参数

在八度音程中运行 matlab 项目时,mex 函数未定义错误

处理八度和墨西哥问题的初学者

包含多个 C 和 C++ 源文件的 mkoctfile

无法将 matlab.exe 进程附加到 Visual Studio 2013 以调试 mex 文件?

八度有趣的错误 - 无法定义函数