ubuntu10.4下安装和使用GMP高精度数学库

本文详细介绍了GMP数学库的安装步骤及解决过程中遇到的问题,并提供了一个简单的使用示例,展示了如何生成一系列素数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、安装:
下载gmp-5.0.1的源代码,解压至gmp-5.0.1目录。
su切换至超级用户权限。
./configure --prefix=/usr  --enable-cxx

提示:
checking for suitable m4… configure: error:
 No usable m4 in $PATH or /usr/5bin (see config.log for reasons).
根据提示查看config.log日志文件,发现文件太大,何处找原因呢?
没有办法,直接google搜索上面的英文提示。
居然马上就找到了资料解决这个问题,原来是缺少m4软件包。
查了一下m4是一个通用的宏处理器,由Brian Kernighan 和Dennis Ritchie设计。
apt-get install build-essential m4
安装完毕,其中的build-essential是ubuntu下用来解决安装g++/gcc编译环境依赖关系的软件包。

执行

./configure --prefix=/usr  --enable-cxx
make
make check 
make install 
开始编译,安装gmp数学库。
root@luoxiongwei-desktop:~# find / -name libgmp*
/usr/lib/ssl/engines/libgmp.so
/usr/lib/libgmpxx.so
/usr/lib/libgmp.la
/usr/lib/libgmpxx.a
/usr/lib/libgmpxx.so.4
/usr/lib/libgmp.so.10.0.1
/usr/lib/libgmpxx.la
/usr/lib/libgmp.a
/usr/lib/libgmp.so.3.5.2
/usr/lib/libgmp.so.10
/usr/lib/libgmp.so
/usr/lib/libgmp.so.3
/usr/lib/libgmpxx.so.4.2.1
应该是安装成功了。
--------------------------------------------------------------------------------
2、使用:
我也是新手,在这里小小尝试一下。
#include <iostream>
#include <gmp.h>
#include <cstdlib>
#include <cstdio>
#include <cstring>

using namespace std;

int main(int argc,char **argv)
{

mpz_t begin, m1, m2;
    int count;
 
    //按照10进制初始化begin
    mpz_init_set_str(begin, "170141183460469231731687303715884105728", 10);
 
    count = (argc==1)?10:atoi(argv[1]);
 
 
    while(count--) {
        mpz_nextprime(begin, begin);
        gmp_printf("%Zd\n", begin);
    }
 
    mpz_clear(begin);
return 0;
}

g++ -o main testgmp.cpp -lgmp
luoxiongwei@luoxiongwei-desktop:~$ ./main
170141183460469231731687303715884105757
170141183460469231731687303715884105773
170141183460469231731687303715884105793
170141183460469231731687303715884105829
170141183460469231731687303715884105851
170141183460469231731687303715884105979
170141183460469231731687303715884106001
170141183460469231731687303715884106031
170141183460469231731687303715884106123
170141183460469231731687303715884106207

具体的参考文档请参见官网:http://gmplib.org/ 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值