下载GMP
在GMP官网下载,下载链接
下载后在你想保存的目录下解压,笔者在d:/gmp-6.2.0
下解压。
下载安装MSYS2
MSYS2是windows下的类unix系统的终端程序,支持64位和32位系统。GMP在win下的安装没有引导程序,因此需要直接使用命令行安装,而win自带的powershell不能胜任,因此需要下载一个类unix或类linux终端。MSYS2官网下载链接
接着根据官网的提示进行安装配置:
- 按照默认路径安装
- 安装结束后打开运行,使用命令
pacman -Syu
进行安装 - 关闭程序,并再次打开,使用命令
pacman -Su
进行安装
配置MSYS2
由于在安装GMP过程中需要make
,m4
等组件,因此使用命令pacman -S <name>
来安装组件,具体为pacman -S make
、pacman -S m4
。
若安装过程中遇到报错如下:
checking whether make sets $(MAKE)… no
或
checking for suitable m4… configure: error: No usable m4 in $PATH or /usr/5bin (see config.log for reasons).
原因都是MSYS2环境中没有安装相应的组件,利用命令pacman -S <name>
来进行安装即可。
配置gcc环境变量
找到gcc文件所在目录,笔者使用的是Dev C++
在其安装目录下找到bin
文件夹将其加入环境变量中。笔者的gcc在路径D:\Dev-Cpp\MinGW64\bin
下,因此将该路径加入环境变量中。
具体为:打开MSYS2,在其中输入命令PATH=$PATH:/d/Dev-Cpp/MinGW64/bin
,该命令会将该路径临时加入终端中,因此注意加入后不要关闭终端,否则需要重新设置。
Dev C++下载链接
安装GMP
在MSYS2中进入GMP解压目录下,然后使用命令:
- ./configure --prefix=/d/Dev-Cpp//MinGW64 --enable-cxx --host=x86_64-w64-mingw32
- make
- make check
- make install
首先解释上述命令。第一条命令中--host
参数为解决汇编强制要求64位出错的问题;--prefix
参数指定GMP安装目录,这里可以随便选择一个文件夹,但最好选择Dev C++
处理inclue文件的目录,对于笔者而言,该目录为D:\Dev-Cpp\MinGW64
,不过你可以先忽略这个问题,直接随便找个方便的目录安装,注意目录不要有非法路径字符或中文字符。
出现报错依次处理即可,笔者遇到的报错具体就是提示MSYS2中没有安装一些组件,以及gcc环境变量的问题,不过这两者在上面已经得到解决。
配置IDE
打开GMP指定的安装目录,把安装好的文件全部复制下来,然后进入Dev C++
处理inclue文件夹
和lib文件夹
的目录,把它粘贴进去。该步骤是为了让编译器在编译过程中可以找到库文件。这也是为何在安装GMP时最好直接选择安装目录为此的原因。
打开Dev C++,点击工具->编译选项
,点击编译器
,勾选编译时加入以下命令
,在其中添加-lgmpxx -lgmp
编译选项即可。
测试
使用如下代码进行测试:
#include <iostream>
#include <cstdlib>
#include <math.h>
#include <fstream>
#include <gmpxx.h>
#include <gmp.h>
using namespace std;
int main(void)
{
mpz_t result, base;
mpz_inits(result,base,NULL);
cout<< "Enter number: ";
int a;
cin>>a;
mpz_set_str(base,"2",10);
mpz_pow_ui(result,base,a);
mpz_sub_ui(result,result,1);
mpz_out_str(stdout,10,result);
cout<<"\n"<<"\n";
system("pause");
return 0;
}
编译通过即正确。
参考资料
https://blog.csdn.net/smallsmallsmallsun/article/details/80857532
https://blog.csdn.net/just_h/article/details/82667787