Window下使用GMP库

GMP介绍

GMP是The GNU MP Bignum Library,是一个开源的数学运算库,它可以用于任意精度的数学运算,包括有符号整数、有理数和浮点数。它本身并没有精度限制,只取决于机器的硬件情况。 更多详情可能访问官方网站 https://gmplib.org/

环境所需软件

点击上面两个软件名就能下载对应的安装包,如果下载不了,可以到我的网盘上下载,地址如下: 链接: http://pan.baidu.com/s/1slw4YOP 密码: 9a2h

------ 这里是赶时间分割线 ------ 如果你很赶时间,我网盘上也有已经编译好的.h .lib .dll文件,可以直接下载,当然在这里下载以后,下面的内容也可以不用看了,地址如下: 链接: http://pan.baidu.com/s/1bpaCP0z 密码: kaxw

安装过程

1.安装MinGW 安装后组件选择"mingw32-base","mingw32-gcc-g++","mingw32-gmp" 安装组件的过程中需要保持网络连接正常。 本文假设MinGW的安装路径为默认的路径 C:\MinGW

2.安装pexports 将下载回来的pexports.exe复制进 C:\MinGW\bin

3.生成lib文件 到了这一步,GMP就已经在Windows里安装好了,我们只要将gmp.h和libgmp.lib文件载入我们的VS工程就可以使用GMP库了。 gmp.h 位于 C:\MinGW\include 目录下 libgmp.lib 则需要我们手动生成,我们可以根据 C:\MinGW\bin\libgmp-10.dll 来生成相应的lib文件,步骤如下:

cd C:\MinGW\bin
pexports.exe libgmp-10.dll > libgmp-10.def
lib /def:libgmp-10.def

这时目录下就会出现 libgmp.lib 文件了。

如果提示 lib 命令不存在,请将VS的相关路径写入环境变量,比如我的是 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin

使用示例

这里我以VS2010做示例,首先我们要将gmp.h和libgmp.lib文件载入工程。 代码如下:

#include "gmp.h"
#pragma comment(lib,"libgmp-10.lib")

int main()
{
	mpz_t t; //mpz_t 为GMP内置大数类型
	mpz_init(t); //大数t使用前要进行初始化,以便动态分配空间
	mpz_ui_pow_ui(t, 2, 100); //GMP所有函数基本都是以mpz打头
	gmp_printf("2^100=%Zd\n", t); //输出大数,大数的格式化标志为%Zd
	mpz_clear(t);
	scanf_s("%s");
	return 0;
}

结语

写完以后才发现好像也不难,挺简单的,然而我竟然搞了一下午

上一篇:Contos-ss5(Socket5) 代理服务搭建 配置及使用


下一篇:CentOS7下搭建socks 5代理