如何使用 .oct 二进制文件作为函数

How to use .oct binary as function

我正在尝试使用其他人编译的 .oct 二进制文件作为函数。

二进制文件是function.oct,我在八度音程中是运行的文件是'test.m`。它们都存在于同一目录中。

为了在 test.m 中调用 function.oct,我正在执行以下操作:

test.m

autoload('func', 'function.oct')
func(x, y)

这会导致此错误:

error: /Users/octavetest/xyz/st.oct: failed to load: dlopen(/octavetest/st.oct, 10): Library not loaded: /Applications/Octave-6.1.0.app/Contents/Resources/usr/opt/octave-octave-app@6.1.0/lib/octave/6.1.0/liboctinterp.8.dylib
  Referenced from: /Users/xyz/octavetest/st.oct
  Reason: image not found

如何从编译后的 .oct 文件中调用函数?

一般情况下,您不能使用其他用户编译的.oct 二进制文件。 OCT 文件与依赖关系链接到安装 Octave 和其他库的确切位置。

error: /Users/octavetest/xyz/st.oct: failed to load: dlopen(/octavetest/st.oct, 10): Library not loaded: /Applications/Octave-6.1.0.app/Contents/Resources/usr/opt/octave-octave-app@6.1.0/lib/octave/6.1.0/liboctinterp.8.dylib
  Referenced from: /Users/xyz/octavetest/st.oct
  Reason: image not found

您正在查看的 OCT 文件(st.oct,而不是 function.oct)是根据 Octave 的 Octave.app 发行版 6.1.0 编译的,这就是只有 Octave 会 运行 反对。

您需要获取该 st OCT 文件的源代码并在您的 Octave 环境中重新编译它。

对不起。