xz -d gmp-6.1.2.tar.xz
tar -xvf gmp-6.1.2.tar.xz
cd gmp-6.1.2
./configure --enable-cxx --prefix=/path_to_install --build=x86_64-linux
# --enable-cxx: 配置GMP时,默认情况下不启用C++支持。解压缩该软件包,并使用以下命令进行配置:./configure --prefix=/usr/local --enable-cxx-这还将安装gmpxx.h header 以及libgmpxx.dylib和/或libgmpxx.a库
# --prefix=/path_to_install 默认路径为/user/local,如果路径为根目录,后续make install时应该用sudo
# 对于我的环境,不加--build=x86_64-linux的话Host type是broadwell-pc-linux-gnu,暂未发现问题
make
make check
sudo make install
export LD_LIBRARY_PATH=/path_to_install/lib:$LD_LIBRARY_PATH
#include <iostream>
#include <gmpxx.h>
using namespace std;
int main()
{
mpz_t a,b,c;
mpz_init(a);
mpz_init(b);
mpz_init(c);
gmp_scanf("%Zd%Zd",a,b);
mpz_add(c,a,b);
gmp_printf("%Zd\n",c);
mpz_clear(a);
mpz_clear(b);
mpz_clear(c);
return 0;
}
/*————————————————
版权声明:本文为CSDN博主「yyyyyyyz_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46002416/article/details/111873588*/
g++ test.cpp -lgmp -lgmpxx -o test
//该例子实现1000的阶乘,代码如下:
#include <gmp.h>
#include <string.h>
int main(int argc, const char *argv[])
{
mpz_t z_i, z_s, z_o;
mpz_init_set_str(z_i, "1", 10);
mpz_init_set_str(z_s, "1", 10);
mpz_init_set_str(z_o, "1", 10);
int i;
for (i = 0; i < 1000; i++)
{
mpz_mul(z_s, z_s, z_i);
mpz_add(z_i, z_i, z_o);
}
gmp_printf("%Zd\n", z_s);
mpz_clear(z_i);
mpz_clear(z_s);
mpz_clear(z_o);
getchar();
return 0;
}
gcc test.cpp -lgmp -lm -o test
40238726007709377354370243392300398......
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。