GMP 软件包包含一些数学库。这里有对任意精度数值计算很有用的函数。
如果你是为 32 位的 x86 系统编译,但是你的 CPU 可以运行 64 位代码并且环境中你有指定的 CFLAGS
,那么配置脚本会尝试配置为 64 位并导致失败。用下面的
方式执行配置命令来避免这个问题:
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.1.2
新配置选项的含义:
--enable-cxx
这个参数启用 C++ 支持
--docdir=/usr/share/doc/gmp-6.1.2
这个变量指定保存文档的正确位置
编译软件包并生成 HTML 文档:
make make html
该章节 GMP 的测试套件至关重要,任何情况下都不能跳过。
查看结果:
make check 2>&1 | tee gmp-check-log
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