2015-02-06 88 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軟件包。