>

우분투 하디 헤론에서 소스에서 gcc 4.4를 컴파일하려고합니다. 문제는 MPFR 버전 2.3.2 이상이 필요하다는 것입니다. MPFR 버전 2.3.1이 있습니다. 사이트<에서 가져온이 작은 C 코드 조각을 실행하여이를 확인할 수 있습니다 -:

#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

이것은 출력됩니다 ::

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

소스에서 MPFR (버전 2.3.2)을 다운로드하여 빌드했으며/usr/local에 올바르게 설치되었지만 gcc가 기본적으로 링크되지 않습니다. 새 MPFR 라이브러리에 링크하려면 다음 컴파일 옵션을 사용해야합니다. :

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

이것은-의 정확한 예상 결과를 생성합니다 :

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

지금 내 질문은

먼저 시스템에서 기본 MPFR 설치를 제거하는 방법(apt-get --purge remove libmpfr-dev는 아무것도하지 않습니다)

둘째 gcc가 자동으로 연결할 수 있도록 새 MPFR 설치를 기본 설치로 설정하는 방법

  • 답변 # 1

    <시간>

    시스템 gcc를 제거하면 mpfr은 좋지 않습니다. 다시 설치하십시오. (와이즈 와이즈) ) 그리고 : 원하는만큼의 gcc 버전을 동시에 설치할 수 있습니다. Hardy의 기본 컴파일러 : sudo apt-get install g++  여기서 g ++는 시스템 컴파일러 gcc/g ++ 버전 4.2.4입니다.

    컴파일러,gcc44, g ++ 44를 사용할 수 있습니다: Ubuntu 8.04 Hardy의 예 : 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}. 링크 :

    gcc44 https://drive.google.com/file/d/0B7S255p3kFXNYmpYeGZHS0RUR0U/view?usp=sharing gcc44-c ++ https://drive.google.com/file/d/0B7S255p3kFXNMEF1NWFiVFViMlk/view?usp=sharing libstdc ++ 44-dev https://drive.google.com/file/d/0B7S255p3kFXNWHB3ejd0TTNhUWc/view?usp=sharing

    설치 : 세 개의 패키지를 다운로드하고 ...

    sudo apt-get install g++ g++-3.3 g++-3.4 g++-4.1
    
    

    참고 : OS가 amd64/x86_64이고 64 비트 패키지를 업로드 할 수있는 경우 알려주십시오.

    <시간> <시간>

    gcc-4.4.7을 수동으로 빌드하려면 : 외부 mpfr, gmp가 필요하지 않습니다 :

    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
    
    

    gcc는 소스 외부에 빌드 폴더가 필요합니다 ....

    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
    
    

    추가 컴파일러 사용, 예 :

    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
    
    
    <시간>

  • 답변 # 2

    <시간> 와이즈 비즈

    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, $ 1) export CC=gcc44 CXX=g++44 && [other command] Like : 2) export CC=gcc44 CXX=g++44 && ./configure 3) gcc44 file.c 로 생성

    링크 : gcc44 https://drive.google.com/file/d/0B7S255p3kFXNQlVHeXdPc25sSEE/view?usp=sharing g ++ 44 https://drive.google.com/file/d/0B7S255p3kFXNeU5jSG9ZdXNQQTQ/view?usp=sharing libstdc ++ 44-dev https://drive.google.com/file/d/0B7S255p3kFXNbWxGNEM0TG93LW8/view?usp=sharing

    My OS is x86_64

    컴파일러는 ~ 150GB 애플리케이션, 수백 개의 c, c ++ 파일을 사용하여 Hardy에서 테스트되었습니다. 결과 = OK.

    <시간> <시간> 와이즈 비즈

    물론. 내 게시물을 참조하십시오. gfr-4.4.7 /에서 mpfr의 압축이 풀 렸습니다.

    와이즈 비즈

    수년 동안 제가 구축 한 많은 패키지는 지금까지 괜찮습니다. 모든 사용자의 불만이 없습니다.

    오늘의 패키지는 Ubuntu Hardy의 alien 명령으로 처리됩니다. ....

    로 실제 재 구축 대신
    dpkg-deb -b
    
    

    3 개의 변환 된 패키지는 CentOS 5.11 저장소 http://mirror.centos.org/centos/5.11/os/i386/CentOS/에서 제공됩니다. 즉, "엔터프라이즈 품질"입니다.

    <시간> 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

관련 자료

  • 이전 linux - 기존의 암호화 된 디렉토리를 홈 디렉토리로 사용
  • 다음 bash - 여러 디렉토리의 파일에서 데이터 추출