win10下安装gmp库(IDE选择为Dev C++)

下载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过程中需要makem4等组件,因此使用命令pacman -S <name>来安装组件,具体为pacman -S makepacman -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

猜你喜欢

转载自blog.csdn.net/m0_46161993/article/details/108576095