g77 problema de execução

1

Instalei o g77 seguindo o procedimento dado a uma pergunta anterior. Mas quando eu corro, erros aparecem, você poderia por favor ajudar alguém a resolver isso?

drjinasena@drjinasena-All-Series:~/minimum$ g77 sorting.f

/usr/bin/ld: cannot find crt1.o: No such file or directory
/usr/bin/ld: cannot find crti.o: No such file or directory
/usr/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status

Obrigado

    
por user585462 23.08.2016 / 06:51

1 resposta

0

Essas duas questões são descritas com mais detalhes aqui . Mas a solução de visão geral é:

O erro "não foi possível encontrar o crt1.o ...." é um bug sobre o qual se falou antes . A maneira de contornar é descobrir onde crti.o mora em seu sistema:

sudo find /usr/ -name "crti.o"

/usr/lib32/crti.o
/usr/lib/debug/usr/lib/x86_64-linux-gnu/crti.o
/usr/lib/x86_64-linux-gnu/crti.o
/usr/libx32/crti.o

Pegue o local com o "linux-gnu" e adicione-o à variável ambiental LIBRARY_PATH. Para isso, edite o arquivo .bashrc e recarregue-o. A saber:

gedit ~/.bashrc

Adicione ao final:

LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LIBRARY_PATH
export LIBRARY_PATH

(substituindo o caminho pelo correto para o seu sistema). Salve e saia do arquivo e recarregue-o:

source ~/.bashrc

O "não pode encontrar -lgcc_s" significa que o ld não pode encontrar uma biblioteca (libgcc_s). Você pode ajudar, encontrando a biblioteca:

sudo find /usr/ -name libgcc_s.so

que retornou algumas versões para mim, então eu escolhi o último (que estava localizado aqui: '/usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc_s.so') e, em seguida, verifiquei onde ld estava esperando a biblioteca:

ld -lgcc_s --verbose

Isso retornou um monte de texto, mas a parte principal em que estamos interessados está bem no final:

==================================================
attempt to open /usr/x86_64-linux-gnu/lib64/libgcc_s.so failed
attempt to open /usr/x86_64-linux-gnu/lib64/libgcc_s.a failed
attempt to open //usr/local/lib/x86_64-linux-gnu/libgcc_s.so failed
attempt to open //usr/local/lib/x86_64-linux-gnu/libgcc_s.a failed
attempt to open //usr/local/lib64/libgcc_s.so failed
attempt to open //usr/local/lib64/libgcc_s.a failed
attempt to open //lib/x86_64-linux-gnu/libgcc_s.so failed
attempt to open //lib/x86_64-linux-gnu/libgcc_s.a failed
attempt to open //lib64/libgcc_s.so failed
attempt to open //lib64/libgcc_s.a failed
attempt to open //usr/lib/x86_64-linux-gnu/libgcc_s.so failed
attempt to open //usr/lib/x86_64-linux-gnu/libgcc_s.a failed
attempt to open //usr/lib64/libgcc_s.so failed
attempt to open //usr/lib64/libgcc_s.a failed
attempt to open //usr/local/lib/libgcc_s.so failed
attempt to open //usr/local/lib/libgcc_s.a failed
attempt to open //lib/libgcc_s.so failed
attempt to open //lib/libgcc_s.a failed
attempt to open //usr/lib/libgcc_s.so failed
attempt to open //usr/lib/libgcc_s.a failed
ld: cannot find -lgcc_s[/text]

Se fizermos um link simbólico de onde o arquivo atual está para um desses locais, tudo será feito:

sudo ln -s /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc_s.so /usr/lib/x86_64-linux-gnu/
    
por Sean Elvidge 01.02.2017 / 12:48