TLDR;
我想在没有任何 GUI 的终端中运行 octave 代码,但面临 ELF 标头错误。
完整的问题;
我正在尝试运行一个基本的 octave 脚本,如此处所示,它保存为名为 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
验证我正在加载我打算加载的文件。
我正在运行刚刚从 16.04 更新到的 Ubuntu 18.04。根据octave --version
我正在使用 4.2.2 。我以前(在 16.04 中)以这种方式使用了 octave,“命令窗口”输出出现在我的终端中,并且绘图/图形函数作为小窗口弹出,耐心地等待您关闭它们以便可以继续执行。
我已经尝试按照此处包含的建议修复我的 octave 安装,以防万一出现问题,但这并没有解决我的问题。
加载 octave 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
我认为这里的问题只是您使用的文件扩展名 .oct 。.oct 扩展名对 octave 有特殊含义,它不应该用于 octave 脚本文件。只需将文件从 testing.oct 重命名为 testing.m 并重试,它应该可以工作: