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

来源:互联网 发布:海湾消防主机联动编程 编辑:程序博客网 时间:2024/05/22 12:48

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/

原创粉丝点击