无法使用 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 文件的主要内容,如果未能解决你的问题,请参考以下文章
在八度音程中运行 matlab 项目时,mex 函数未定义错误