Gostaria de ajudar?

quarta-feira, 16 de maio de 2012

Instalação do Compilador ifort na vesão 9.10 do ubuntu


PS. Para quem ja tem o ifort instalado e atualisou o ubuntu para versão 9.1 ou superior a libstdc++.so.5 pode ser instalada pelo Synaptic ou apt-get install, basta adiciona a linha abaixo no seu source.list (/etc/apt/sources.list).
deb http://ubuntu.mirror.cambrium.nl/ubuntu/ hardy main universe
Após adicionar a linha ao source.list recarregue os repositório e depois é só instalar que o ifort voltará a funcionar.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Algumas vezes eu me deparei com um erro ao compilar programas FORTRAN com o ifort.
/opt/intel/Compiler/11.1/059/bin/ia32/fortcom: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: o such file or directory
ifort: error #10273: Fatal error in /opt/intel/Compiler/11.1/059/bin/ia32/fortcom, terminated by 0x7f

Este erro se deve ao fato do ifort depender da biblioteca (libstdc++.so.5) e as versões mais novas do Linux (como a 9.10 do ubuntu) vem atualisada com a nova biblioteca, ou seja, libstdc++.so.6.
Ao efetuar sua atualização de SISTEMA também pode ocorrer a substituição da lib.5 pela lib.6. Ex: você possue o ubuntu 9.04 e atualisou para o ubuntu 9.10 pode ficar certo que a lib foi atualisada e o IFORT irá dar erro.
A pergunta é, como resolver esse problema?
PS. Observe qual a configuração da sua maquina: 32 ou 64 bits. No meu caso 64 bits
Primeiro : Baixar o arquivo l_cprof_p_11.1.064_intel64.tgz so site da intel (http://software.intel.com/en-us/articles/non-commercial-software-development/). Ao baixar você recebera no seu email o Serial Number que servirá para autenticar seu software.

Segundo : descompacte o arquivo l_cprof_p_11.1.064_intel64.tgz  , pode ser na pasta /downloads mesmo.
>> tar -xzvf l_cprof_p_11.1.064_intel64.tgz
Terceiro : Verifique se o g++ esta instalado:
>>g++
Se a resposta for:
g++: no input files
Esta ok.
Iniciando a instalação:

Entre na pasta descompactada (/l_cprof_p_11.1.064_intel64) usando o terminal.
>> cd l_cprof_p_11.1.064_intel64
Em seguida use o comando:
>> sudo ./instal.sh

Apartir de agora você simplesmente segue o que esta sendo solicitado direto no terminall:

Passo 1/7: Apresentação
Passo 2/7: 1. View the license agreement. Vá até o final e digite: “accept”
Passo 3/7: 1. Ativação da licença.  Nesta parte você precisará inserir a lincensa (XXXX-XXXXXXXX)
Passo 4/7: 1. Typical Install.
O instalador confere os pré-requisitos.

Em seguida aparece a seguinte mensagem de erro:
Missing critical pre-requisite
-- 32-bit libraries not found


não pode ser encontrado:
libstdc++
libstdc++5
glibc
libgcc


Como comentei no início do tópico essas bibliotecas estão diferentes na versão 9.10. Para tentarmos solucionar esse problema teremos que crias links simbólicos das biblioecas lib.6 para as lib.5, desta forma tentaremos "enganar" o programa. Em uma outra Aba do terminal digite:

>> sudo ln -s /usr/lib32/libstdc++.so.6 /usr/lib32/libstdc++.so.5
>> sudo ln -s /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.5


Volte para a Aba onde você esta instalando:

Saia do instalador digitando "q" e depois enter. Volte ao início do tópico e repita os passos 1-4. Em alguns sistemas você pode se deparar com a seguinte menssagem de erro:

Missing optional pre-requisite
-- No compatible Java* Runtime Environment (JRE) found
-- operating system type is not supported.
-- system glibc or kernel version not supported or not detectable
-- binutils version not supported or not detectable


Por enquanto ignore esta menssagem. Dê enter e aparecerá:

Activation Type:
   Existing License File
Component(s):
   Intel(R) Fortran Compiler Professional Edition for Linux*
      Intel(R) Fortran Compiler for applications running on Intel(R) 64
      Intel(R) Debugger for applications running on Intel(R) 64
      Intel(R) Math Kernel Library for applications running on Intel(R) 64
Location:
   /opt/intel/Compiler/11.1/059
Install Mode:
   NONRPM



O proximo passo é escolher a opção: 1. Install

Espere que a instalação seja concluída e em seguida aperte “Enter” para sair do instalador. A instalação foi concluida. Parte do problma foi solucionado.

Ao tentar compilar algo aparece a mensagem de erro:

/opt/intel/Compiler/11.1/059/bin/intel64/fortcom: /usr/lib/libstdc++.so.5: version `CXXABI_1.2' not found (required by /opt/intel/Compiler/11.1/059/bin/intel64/fortcom)
/opt/intel/Compiler/11.1/059/bin/intel64/fortcom: /usr/lib/libstdc++.so.5: version `GLIBCPP_3.2' not found (required by /opt/intel/Compiler/11.1/059/bin/intel64/fortcom)


Precisamos fazer uma verificação no terminal digite:

>> strings /usr/lib64/libstdc++.so.5 | grep CXXABI

O retorno:
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3


O último passo:

Entre no link: http://packages.ubuntu.com/jaunty/libstdc++5, faça o download da biblioteca lib.5 e instale em seu PC.
PS. para versões ubuntu ou debian:
>>dpkg -i libstdc++5_3.3.6-17ubuntu1_amd64.deb
Em seguida crie novos links simbólicos:

# ln -sf /usr/lib/libstdc++.so.5.0.7 /usr/lib32/libstdc++.so.5
# ln -sf /usr/lib/libstdc++.so.5.0.7 /usr/lib64/libstdc++.so.5

Agora é preciso exportar algumas variaveis:
No Terminal digite:
>> gedit /home/usuario/.bashrc
No final do arquivo .bashrc insira
# Intel Fortran Compiler 10.1.015 for Linux
# Environment variables
    export LD_LIBRARY_PATH="/opt/intel/Compiler/11.1/064/lib"
    export DYLD_LIBRARY_PATH="/opt/intel/Compiler/11.1/064/lib"
    export MANPATH="/opt/intel/Compiler/11.1/064/man"
    export PATH=/opt/intel/Compiler/11.1/064/bin/intel64:$PATH
Agora Salve e feche o arquivo .bashrc
No terminal digite:
>>source .bashrc
Observe que ao executarmos o comando

>> strings /usr/lib64/libstdc++.so.5 | grep CXXABI

retorna:
CXXABI_1.2
CXXABI_1.2.1
CXXABI_1.2.2


Agora esperamos que os problemas tenham sido solucionado. Compile algo com o ifort e verifique se esta tudo ok.

Boa Sorte e Bom Trabalho a Todos!!

Nenhum comentário :

Postar um comentário