【问题标题】:g77 compiling errors (cannot find crt1.o, crti.o, -lgcc_s)g77 编译错误(找不到 crt1.o、crti.o、-lgcc_s)
【发布时间】:2015-02-07 01:02:32
【问题描述】:

我真的需要一些帮助。我正在尝试为我的论文编译和执行一些程序。

问题是,我以前从未使用过 Fortran,所以我一味地依赖文档......它说要使用一些命令来完成这项工作,特别是

setenv bc03 PATH TO SRC DIRECTORY
cd $bc03
source ./.bc_cshrc

所以,我安装了 Ubuntu 14.04(我在 Windows 上工作,这是另一个问题,我也是 Linux 新手),并在终端中使用了这些命令。

起初它没有工作,因为它无法识别 g77 命令,我按照教程安装 g77,再次启动“make all”命令,它似乎部分工作。 据我了解,编译器在目录中创建了一堆 .o 文件,但是在编译 6 个主要程序时

"make bin_ised ascii_ised vel_disp csp_galaxev add_bursts downgrade_resolution"

它给了我这些错误(我从意大利语翻译了一些部分)

make[1]: entering directory "/home/lews/Documenti/bc03/src"
g77 -ffixed-line-length-132 bin_ised.f ./public_utilities.a -o bin_ised
/usr/bin/ld: cannot find crt1.o: File o directory non esistente
/usr/bin/ld: cannot find crti.o: File o directory non esistente
/usr/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
make[1]: *** [bin_ised] Errore 1
make[1]: leaving directory "/home/lews/Documenti/bc03/src"
make: *** [all] Errore 2

我有点迷路了,因为我告诉过你我是 Fortran 和 Linux 的新手,所以我真的想不通....谢谢你的帮助!

【问题讨论】:

  • 这很难说,因为它取决于安装。如果您执行ls /usr/lib/x86_64-linux-gnu(或类似的,如果此目录不存在),它是否列出crt1.ocrti.olibgcc_s.*?如果是,在make 之前执行export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH 可能会解决问题。
  • 目录中有crt1.o和crti.o两个文件,另外一个不见了。无论如何我都尝试使用你的命令,但它不起作用......我忘了说在做任何事情之前,我正在使用命令“tcsh”,因为我应该用来编译文件的命令在 csh 中语法,所以我想我应该改变一下你建议的命令的语法

标签: linux fortran ubuntu-14.04 g77


【解决方案1】:

放弃 g77。它多年来一直不受支持,而且很明显,您的系统上没有正确配置(缺少库)。

请改用 gfortran,它随所有主要的 Linux 安装一起提供。 gfortran 与 g77 兼容,但有一些非常小的例外。

如果您的构建脚本明确提及 g77,请将其替换为 gfortran,并在必要时调整其他标志。

我认为 gfortran-4.9 是当前的 Ubuntu 软件包。

【讨论】:

    猜你喜欢
    • 2014-03-10
    • 1970-01-01
    • 2011-12-17
    • 2011-09-13
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 1970-01-01
    相关资源
    最近更新 更多