6.19. GMP-6.2.0

GMP 패키지에는 수학 라이브러리가 포함되어 있다. 정밀 산술에 유용한 함수들을 가지고 있다.

예상 빌드 시간: 1.1 SBU
필요 디스크 공간: 51 MB

6.19.1. GMP 설치

[참고]

참고

64비트 CPU에서 32비트 x86용으로 빌드하고 있고, 그와 동시에 CFLAGS도 지정했다면, configure 스크립트는 64비트용으로 구성하려다 결국 실패할 것이다. 아래 configure 명령을 실행해서 이 문제를 방지하라:

ABI=32 ./configure ...
[참고]

참고

GMP의 기본 설정은 호스트 프로세서에 최적화된 라이브러리를 생성한다. 호스트의 CPU보다 성능이 떨어지는 프로세서에 적합한 라이브러리를 원한다면 다음을 실행하여 일반 라이브러리를 생성할 수 있다:

cp -v configfsf.guess config.guess
cp -v configfsf.sub   config.sub

GMP 컴파일을 준비한다:

./configure --prefix=/usr    \
            --enable-cxx     \
            --disable-static \
            --docdir=/usr/share/doc/gmp-6.2.0

Configure 옵션들의 의미:

--enable-cxx

C++ 지원을 활성화한다

--docdir=/usr/share/doc/gmp-6.2.0

문서의 올바른 위치를 지정한다.

패키지를 컴파일하고 HTML 문서를 생성한다:

make
make html
[중요]

중요

이 절의 GMP 테스트 스위트는 매우 중요하다. 어떤 상황에서도 건너뛰지 않도록 하라.

결과를 테스트하라:

make check 2>&1 | tee gmp-check-log
[경고]

경고

GMP의 코드는 해당 코드를 빌드한 프로세서에 대해 고도로 최적화되어 있다. 드문 일이지만, 프로세서를 감지하는 코드가 시스템 기능을 잘못 식별해서 gmp 라이브러리를 사용하는 테스트나 응용 프로그램으로부터 "Illegal instruction"이라는 메시지와 함께 오류가 발생할 수 있다. 이럴 때는 --build=x86_64-unknown-linux-gnu 옵션과 함께 재구성하고 다시 빌드해야 한다.

테스트 스위트의 190개 테스트가 모두 통과했는지 확인하라. 다음 명령을 실행하여 결과를 확인하라:

awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log

문서와 패키지를 설치한다:

make install
make install-html

6.19.2. GMP의 내용

설치된 라이브러리들: libgmp.so와 libgmpxx.so
설치된 디렉토리: /usr/share/doc/gmp-6.2.0

요약

libgmp

정밀 산술 함수 포함

libgmpxx

C++ 정밀 산술 함수 포함