2015-02-06 87 views
0

我真的需要一些帮助。我试图为我的论文编译和执行一些程序。g77编译错误(找不到crt1.o,crti.o,-lgcc_s)

的问题是,我从来没有使用Fortran语言,所以我一味依靠对文档的....它说要用几个commmands做的工作,特别是

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都是新手,所以我真的无法弄清楚....感谢您的帮助!

+0

很难说,因为它取决于安装。如果你使用'ls/usr/lib/x86_64-linux-gnu'(或类似的东西,如果这个目录不存在),它会列出'crt1.o','crti.o'和'libgcc_s。*' ?如果是,在'make'之前执行'export LD_LIBRARY_PATH =/usr/lib/x86_64-linux-gnu:$ LD_LIBRARY_PATH'可能会将其排序。 – albapa 2015-02-06 14:43:06

+0

在目录中有crt1.o和crti.o文件,另一个缺失。 无论如何,我试图使用你的命令,但它不工作......我忘记说,在做任何事之前,我使用命令“tcsh”,因为我应该用来编译这些文件的命令是在csh语法中,所以我想我应该改变你建议的命令的语法 – Carlo 2015-02-06 16:25:55

回答

1

沟g77。多年来它一直不受支持,显然,系统配置不正确(缺少库)。

使用gfortran代替所有主要的Linux安装。 gfortran与g77兼容,除了一些非常小的例外。

如果您的构建脚本明确提到了g77,请将其替换为gfortran,并根据需要调整其他标志。

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