【问题标题】:Dealing with a gfortran error?处理 gfortran 错误?
【发布时间】:2014-06-13 15:11:25
【问题描述】:

我通常在 Fortran 和 C 中编写一些代码来完成我的工作,但是从几天前开始我收到以下错误:

$ gfortran D.f -o D.x gfortran:尝试执行“f951”时出错:execvp:没有这样的文件或目录

(我在 I7、8 核和 64b 上安装了 Ubuntu 14.04)

我确实尝试在论坛和几个选项上进行搜索,但似乎没有任何效果...有人可以帮忙...吗?

我想问题是在我安装 adobereader 和/或 skype 时开始的。


对不起,好的。定位 f951 给出:

$ locate f951
/usr/lib/gcc/x86_64-linux-gnu/4.8/f951
/usr/lib/gcc-cross/aarch64-linux-gnu/4.8/f951
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/f951
/usr/lib/gcc-cross/powerpc-linux-gnu/4.8/f951
/usr/lib/gcc-cross/powerpc64le-linux-gnu/4.8/f951
$

命令 touch D.f && strace gfortran -c D.f > PATH-TO-F951.txt 的结尾给出:

close(3)                                = 0
stat("/usr/lib64/gcc/x86_64-suse-linux/4.0.2/x86_64-linux-gnu/4.8/f951", 0x7fff0490e630) = -1 ENOENT (No such file or directory)
stat("/usr/lib64/gcc/x86_64-suse-linux/4.0.2/x86_64-linux-gnu/f951", 0x7fff0490e630) = -1 ENOENT (No such file or directory)
stat("/usr/lib64/gcc/x86_64-suse-linux/4.0.2/f951", 0x7fff0490e630) = -1 ENOENT (No such file or directory)
stat("/usr/lib64/gcc/x86_64-linux-gnu/bin/x86_64-linux-gnu/4.8/f951", 0x7fff0490e630) = -1 ENOENT (No such file or directory)
stat("/usr/lib64/gcc/x86_64-linux-gnu/bin/x86_64-linux-gnu/f951", 0x7fff0490e630) = -1 ENOENT (No such file or directory)
stat("/usr/lib64/gcc/x86_64-linux-gnu/bin/f951", 0x7fff0490e630) = -1 ENOENT (No such file or directory)
vfork(gfortran: error trying to exec 'f951': execvp: No such file or directory
)                                 = 8373
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=8373, si_status=255, si_utime=0, si_stime=0} ---
 wait4(8373, [{WIFEXITED(s) && WEXITSTATUS(s) == 255}], 0, NULL) = 8373
 stat("/tmp/ccf8JxJd.s", {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
 unlink("/tmp/ccf8JxJd.s")               = 0
 exit_group(1)                           = ?
 +++ exited with 1 +++
 $

嗯,我可以看到有什么问题,我相信...,“suse-linux”?但是如何纠正呢?

【问题讨论】:

  • 谢谢。我确实已经尝试过,还有很多其他人尝试过,但无法解决问题......
  • 您运行的是 32 位还是 64 位 Linux?输入 gfortran --version 会得到什么?
  • 看起来像gcc.gnu.org/bugzilla/show_bug.cgi?id=48697,但为什么在安装 adobe/skype 后会发生这种情况并没有多大意义。
  • 你做了什么来安装它们?
  • 感谢这些 cmets。确实这很奇怪,但不幸的是我不能说安装后它停止工作......

标签: fortran gfortran


【解决方案1】:

根据 Ubuntu 14.04 中 gfortran 软件包的文件列表,f951 可以在此处找到:/usr/lib/gcc/x86_64-linux-gnu/4.8/f951。您可以先检查存在/权限:

ls -lF /usr/lib/gcc/x86_64-linux-gnu/4.8/f951
file /usr/lib/gcc/x86_64-linux-gnu/4.8/f951

如果可执行文件在那里,那么可能由于某种原因找不到它。

根据一些随机的互联网来源,可能是 Adob​​e Acrobat 正在破坏 /usr/lib/gcc/...,将自己的库放在那里,但我无法否认/确认这一点,因为我既没有 Ubuntu 也没有 Adob​​e Acrobat。

我认为最简单的选择是重新安装 gcc 和 gfortran?

sudo apt-get update
sudo apt-get install --reinstall gcc gfortran

【讨论】:

  • 感谢您的帮助。
  • 感谢您的帮助。 f951 可执行文件就在那里!而且我认为您正在使用 Adob​​e 编写。我确实尝试了您关于更新和重新安装的建议,但仍然无法正常工作。
  • 好的,如果文件在那里,touch dummy.f && strace gfortran -c dummy.f 会给你什么?它应该告诉你它在哪里寻找f951
  • 好的。我要在这里粘贴我为这样的命令准备的东西吗?
    首先让我告诉你'f951'所在的地方:
    $ locate f951
    /usr/lib/gcc/x86_64-linux-gnu/4.8/f951
    /usr /lib/gcc-cross/aarch64-linux-gnu/4.8/f951
    /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/f951
    /usr/lib/gcc-cross /powerpc-linux-gnu/4.8/f951
    /usr/lib/gcc-cross/powerpc64le-linux-gnu/4.8/f951
    $
  • 然后运行我得到的上述命令(几乎在最后):
    close(3) = 0 stat("/usr/lib64/gcc/x86_64-suse-linux/ 4.0.2/x86_64-linux-gnu/4.8/f951", 0x7fff0490e630) = -1 ENOENT (没有这样的文件或目录) stat("/usr/lib64/gcc/x86_64-suse-linux/4.0.2/x86_64- linux-gnu/f951", 0x7fff0490e630) = -1 ENOENT (没有这样的文件或目录) stat("/usr/lib64/gcc/x86_64-suse-linux/4.0.2/f951", 0x7fff0490e630) = -1 ENOENT (没有这样的文件或目录) stat("/usr/lib64/gcc/x86_64-linux-gnu/bin/x86_64-linux-gnu/4.8/f951", 0x7fff0490e630) = -1 ENOENT (没有这样的文件或目录)跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多