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