8.19. GMP-6.2.1

GMP 软件包包含提供任意精度算术函数的数学库。

估计构建时间: 0.3 SBU
需要硬盘空间: 52 MB

8.19.1. 安装 GMP

[注意]

注意

如果您在为 32 位 x86 构建 LFS,但您的 CPU 能够运行 64 位代码,而且 您指定了 CFLAGS 环境变量,配置脚本会试图为 64 位 CPU 进行配置并且失败。为了避免这个问题,像下面这样执行 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.1

新的配置选项的含义:

--enable-cxx

该参数启用 C++ 支持

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

该变量指定文档的正确位置

编译该软件包,并生成 HTML 文档:

make
make html
[重要]

重要

我们认为,本节中 GMP 的测试套件被认为是关键的。无论如何都不要跳过测试过程。

测试编译结果:

make check 2>&1 | tee gmp-check-log
[小心]

小心

GMP 中的代码是针对本机处理器高度优化的。在偶然情况下,检测处理器的代码会错误识别 CPU 的功能,导致测试套件或使用 GMP 的其他程序输出消息 “Illegal instruction” (非法指令)。如果发生这种情况,需要加入选项 --build=x86_64-pc-linux-gnu 并重新构建 GMP。

务必确认测试套件中的 197 个测试全部通过。运行以下命令检验结果:

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

安装该软件包及其文档:

make install
make install-html

8.19.2. GMP 的内容

安装的库: libgmp.so 和 libgmpxx.so
安装的目录: /usr/share/doc/gmp-6.2.1

简要描述

libgmp

包含任意精度数学函数

libgmpxx

包含 C++ 任意精度数学函数