6.17. GMP-6.1.2

GMP 软件包包含一些数学库。这里有对任意精度数值计算很有用的函数。

大致构建用时: 1.3 SBU
所需磁盘空间: 61 MB

6.17.1. 安装 GMP

[Note]

Note

如果你是为 32 位的 x86 系统编译,但是你的 CPU 可以运行 64 位代码并且环境中你有指定的 CFLAGS,那么配置脚本会尝试配置为 64 位并导致失败。用下面的 方式执行配置命令来避免这个问题:

ABI=32 ./configure ...
[Note]

Note

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.1.2

新配置选项的含义:

--enable-cxx

这个参数启用 C++ 支持

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

这个变量指定保存文档的正确位置

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

make
make html
[Important]

Important

该章节 GMP 的测试套件至关重要,任何情况下都不能跳过。

查看结果:

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

Caution

GMP 中的代码对于其构建的处理器进行了高度优化。有时,检测处理器的代码会误认系统的功能,并在测试中报错,或是在其他应用使用 GMP 库的时候显示消息「Illegal instruction(非法指令)」。在这种情况下,GMP 需要重新配置选项 --build=x86_64-unknown-linux-gnu 并重新构建。

确认测试套件中所有的 190 个测试都通过了。通过输入下面的命令检查结果:

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

安装软件包和文档:

make install
make install-html

6.17.2. GMP 内容

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

简要介绍

libgmp

包括精度数学函数

libgmpxx

包括 C++ 精度属性函数