2015-02-06 8 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, снова запустил команду «сделать все», и кажется, что она частично работает. Как я понимаю, компилятор создает кучу .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. * ' ? Если да, выполните 'export LD_LIBRARY_PATH =/usr/lib/x86_64-linux-gnu: $ LD_LIBRARY_PATH' перед' make', чтобы отсортировать его. – albapa

+0

В каталоге находятся файлы crt1.o и crti.o, другой отсутствует. Я попытался использовать вашу команду в любом случае, но это не сработало ... Я забыл сказать, что прежде чем что-либо делать, я использую команду «tcsh», потому что команды, которые я должен использовать для компиляции файлов, в синтаксисе csh, поэтому, я думаю, я должен немного изменить синтаксис команды, которую вы предложили – Carlo

ответ

1

Ditch g77. Он не поддерживается в течение многих лет и, по-видимому, неправильно настроен в вашей системе (библиотеки отсутствуют).

Используйте gfortran вместо этого, который поставляется со всеми основными установками Linux. gfortran совместим с g77, с некоторыми незначительными исключениями.

Если скрипт сборки явно упоминает g77, замените его gfortran и при необходимости скорректируйте другие флаги.

Я думаю, что gfortran-4.9 - это текущий пакет Ubuntu.