Ubuntu - Removendo o MPFR e instalando uma nova versão da fonte

0

Estou no Ubuntu Hardy Heron tentando compilar o gcc 4.4 a partir do código-fonte. O problema é que eu preciso do MPFR versão 2.3.2 ou superior. Eu tenho a versão 2.3.1 do MPFR. Posso verificar isso usando este pequeno snippet de código C obtido de seu site -:

#include <stdio.h>

#include <mpfr.h>

  int main (void)
  {
   printf ("MPFR library: %-12s\nMPFR header:  %s (based on %d.%d.%d)\n",
              mpfr_get_version (), MPFR_VERSION_STRING, MPFR_VERSION_MAJOR,
              MPFR_VERSION_MINOR, MPFR_VERSION_PATCHLEVEL);
   return 0;
}

cc -o version version.c -lmpfr -lgmp

Isso imprime: -

MPFR library: 2.3.1       
MPFR header:  2.3.2 (based on 2.3.2)

Eu fiz o download e construí o MPFR (versão 2.3.2) a partir do código-fonte e ele foi instalado corretamente em / usr / local, mas o problema é que o gcc não irá vincular a ele por padrão. Eu tenho que usar as seguintes opções de compilação para vincular à minha nova biblioteca MPFR -:

gcc test_mpfr.o -o test_mpfr -Wl,-Bstatic -l:/usr/local/lib/libmpfr.a -Wl,-Bdynamic 

Isso produz a saída correta e esperada de -:

MPFR library: 2.3.2       
MPFR header:  2.3.2 (based on 2.3.2)

Agora minhas perguntas são que

primeiramente como removo minha instalação padrão do MPFR do meu sistema ( apt-get --purge remove o libmpfr-dev não faz nada ), e

Em segundo lugar, como eu faço a minha nova instalação MPFR minha padrão para que o gcc possa vinculá-la automaticamente.

    
por Kramer786 30.05.2016 / 09:45

2 respostas

0

Remover o sistema gcc, mpfr não é uma boa ideia. Por favor reinstale. ( sudo apt-get install g++ ) E: Você pode ter quantas versões do gcc quiser, instaladas ao mesmo tempo. Os compiladores padrão para Hardy: sudo apt-get install g++ g++-3.3 g++-3.4 g++-4.1 , onde g ++ é o compilador do sistema gcc / g ++ versão 4.2.4.

Compiladores, gcc44, g ++ 44 estão disponíveis para o Ubuntu 8.04 Hardy, exemplo i386: {gcc44_4.4.7-2_i386.deb, gcc44-c ++ _ 4.4.7-2_i386.deb, libstdc ++ 44-devel_4.4.7-2_i386.deb}. Links:

gcc44 link gcc44-c ++ link libstdc ++ 44-dev link

Instale: faça o download dos três pacotes e ...

1) sudo apt-get install libgmp3c2
cd Downloads/
2) sudo gdebi gcc44_4.4.7-2_i386.deb
3) sudo gdebi libstdc++44-devel_4.4.7-2_i386.deb
4) sudo gdebi gcc44-c++_4.4.7-2_i386.deb

Nota: Por favor avise, se o seu sistema operacional for amd64 / x86_64, e pacotes de 64bits podem ser carregados.

Se você realmente quer construir o gcc-4.4.7 manualmente: mpfr externo, o gmp não é necessário:

tar xvf gcc-4.4.7.tar.bz2 (A configured gcc cannot be reused, please start from scratch)
cd gcc-4.4.7/
tar xvf mpfr-2.4.2.tar.bz2
mv -v mpfr-2.4.2 mpfr
tar xvf gmp-5.0.0.tar.bz2
mv -v gmp-5.0.0 gmp

O gcc requer uma pasta de compilação fora da fonte ....

cd ../
mkdir build-gcc44
cd build-gcc44/
../gcc-4.4.7/configure --program-suffix=44 --prefix=/usr/local/gcc447 --enable-clocale=gnu --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-languages=c,c++ --disable-multilib

make
sudo make install
cd /usr/bin/
sudo ln -s /usr/local/gcc447/bin/gcc44
sudo ln -s /usr/local/gcc447/bin/g++44

Usando um compilador extra, exemplos:

1) export CC=gcc44 CXX=g++44 && [other command]
Like : 2) export CC=gcc44 CXX=g++44 && ./configure
3) gcc44 file.c
por 30.05.2016 / 16:24
0

My OS is x86_64

Packages.amd64: g ++ 44_4.4.7-ubuntu8_amd64.deb, gcc44_4-4-7-ubuntu8_amd64.deb, libstdc ++ 44-dev_4.4.7-ubuntu8_amd64.deb, criado com $ dpkg-deb -b

Links: gcc44 link g ++ 44 link libstdc ++ 44-dev link

1) sudo gdebi libstdc++44-dev_4.4.7-ubuntu8_amd64.deb
2) sudo gdebi gcc44_4-4-7-ubuntu8_amd64.deb
3) sudo gdebi g++44_4.4.7-ubuntu8_amd64.deb

Os compiladores foram testados no Hardy com um aplicativo de ~ 150GB, centenas de arquivos c, c ++: Resultado = OK.

MPFR is required for building gcc4.4

Claro. Veja meu post. O mpfr é descompactado dentro do gcc-4.4.7 /.

How can I verify that they are un tampered ?

Os muitos pacotes que construí ao longo dos anos foram OK até agora. Não há reclamações de nenhum usuário.

Os pacotes de hoje são tratados com o comando alienígena do Ubuntu Hardy: economiza alguns minutos. Em vez de uma reconstrução real com ....

$ dpkg-deb -b packagename packagename_version_architecture.deb

Os três pacotes convertidos são do link do repositório do CentOS 5.11, ou seja, "Qualidade da empresa" ".

por 30.05.2016 / 19:34

Tags