Octave-无效的 ELF 标头-Ubuntu 18.04

Octave-无效的 ELF 标头-Ubuntu 18.04

TLDR;

我想在没有任何 GUI 的终端中运行八度代码,但遇到了 ELF 头错误。

完整问题;

我正在尝试运行一个基本的八度脚本,如下图所示,它被保存为一个名为 testing.oct 的文件

x = 5
% This is just some silly comment to make minimum length. 

但是,当我输入octave testing.oct已经在该文件目录中的命令行时,出现以下错误

error: /home/user/programs/junk/testing.oct: failed to load: /home/user/programs/junk/testing.oct: invalid ELF header

运行cat testing.oct验证我是否正在加载我想要的文件。

我正在运行 Ubuntu 18.04,我刚刚从 16.04 更新到它。据octave --version我所知,我使用的是 4.2.2。我以前(在 16.04 中)以这种方式使用过八度,我的终端中出现了“命令窗口”输出,绘图/图形函数以小窗口的形式出现,耐心等待您关闭它们,以便继续执行。

我已经尝试遵循以下建议这里修复我的八度安装,以防这是问题所在,但这并不能解决我的问题。

加载八度 GUI 并将脚本放入命令窗口会引发相同的错误。

任何能够帮助我以这种方式从命令行使用 Octave 的信息都将不胜感激。

编辑1:响应评论请求apt-cache policy octave

octave:
  Installed: 4.2.2-1ubuntu1
  Candidate: 4.2.2-1ubuntu1
  Version table:
 *** 4.2.2-1ubuntu1 500
        500 http://us.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages
        100 /var/lib/dpkg/status

编辑2:响应评论请求dpkg -l | grep octave

ii  liboctave4:amd64  4.2.2-1ubuntu1  amd64  shared libraries of the GNU Octave language
ii  octave            4.2.2-1ubuntu1  amd64  GNU Octave language for numerical computations
ii  octave-common     4.2.2-1ubuntu1  all    architecture-independent files for octave
ii  octave-doc        4.2.2-1ubuntu1  all    documentation of the GNU Octave language

答案1

我认为这里的问题只是您使用的文件扩展名 .oct。.oct 扩展名对于 Octave 具有特殊含义,不应将其用于 Octave 脚本文件。只需将文件从 testing.oct 重命名为 testing.m 并重试,然后它应该可以正常工作:

$ octave testing.oct 
error: /home/elias/slask/testing.oct: failed to load: /home/elias/slask/testing.oct: file too short
$ mv testing.oct testing.m
$ octave testing.m 
x =  5

相关内容