gmp 5.0.1 windows 下编译使用
编译好的最新版gmp的dll 文件下载
在windows下使用gmp的动态库,要注意到:
在gmp.info-1中有一段说明:
MINGW uses the C runtime library `msvcrt.dll' for I/O, so
applications wanting to use the GMP I/O routines must be compiled
with `cl /MD' to do the same. If one of the other C runtime
library choices provided by MS C is desired then the suggestion is
to use the GMP string functions and confine I/O to the application.
所以在编译的时候加一句/MD 即可(默认使用msvcrt.dll作为运行库),当然这对于vc有效。
启用 /MD 时VC6,VS2008,vs2010 分别对应msvcrt.dll、 msvcr80.dll 、MSVCR100.dll。
所以经常看到用vc6.0以上版本的开发软件(涉及运行库),会顺便捎上***.dll 库。
涉及到FILE文件操作时,使用vc6加上/MD会运行很顺利,如果是vs系列进行调用,最好不要用FILE相关的gmp函数,崩溃难免。
可以做个替换:
对于mpz_out_str 使用的解决方案:使用 mpz_get_str()
//替换mpz_out_str(stdout,36,r);
//替换mpz_out_str(f,36,r);
FILE *f=fopen("a.txt","w");
mpz_t r;
int i;
char ; //或用malloc分配空间
.....
//并初始化qq[100]为0 ...
mpz_get_str(qq,36,r);//The base may vary from 2 to 36
printf("%s",qq); //console显示输出,替换mpz_out_str(stdout,36,r);
i=0;
while(qq!=0)
fputc(qq[i ],f);//写入文件 ,替换mpz_out_str(f,36,r);
fclose(f);
//-------------------------------------------------------------------
或者参考:http://gmplib.org/list-archives/gmp-discuss/2004-May/001171.html
修改wayne的gmp测试码:
//******************************************
#include <stdio.h>
#include "gmp.h"
#pragma comment(lib,"libgmp.lib")
int main (void)
{
FILE *f=fopen("a.txt","w");
int num=50,i;
mpz_t n,m,c,r;
char qq[100]; //或用malloc分配空间,并初始化为0
mpf_t pi,e,xx,yy;//**********
mpq_t x,y,z;
for(i=0;i<100;i++)
qq[i]='/0';
mpz_init_set_str (n, "13703703579", 10);
mpz_init_set_str (m, "29012345415", 10);
mpz_inits(c,r,'/0');
mpz_gcd(c,n,m);
mpz_fac_ui(r,num);
gmp_printf ("gcd(%Zd,%Zd) = %Zd/n/n%d! =%Zd:/n in base 36:/t",n,m,c,num,r);
//***************************
//替换mpz_out_str(stdout,36,r);
//替换mpz_out_str(f,36,r);
mpz_get_str(qq,36,r);//The base may vary from 2 to 36
printf("%s",qq);//console显示输出
i=0;
while(qq[i]!=0)
fputc(qq[i++],f);//写入文件
fclose(f);
//***************************
mpz_fib_ui(r,num);
gmp_printf("/n/nthe %dth fibonacci number is:/n %Zd/n",num,r);
mpz_bin_ui(c,n,num);
gmp_printf("/nBinomial number C(%Zd,%d) is:/n%Zd/n",n,num,c);
mpz_pow_ui(c,n,num);
gmp_printf("/n%Zd^%d =:/n%Zd/n",n,num,c);
mpf_set_default_prec(500);
mpf_init_set_str(pi,"3.14159265358979323846264338327950288419716939937510582097494459230781",10);
mpf_init_set_str(e ,"2.71828182845904523536028747135266249775724709369995957496696762772407",10);
mpf_inits(xx,yy,'/0');
mpf_pow_ui(xx,pi,4);mpf_pow_ui(yy,pi,5);
mpf_add(xx,xx,yy);
mpf_pow_ui(yy,e,6);
gmp_printf("/npi^4+pi^5=%.50Ff/ne^6/t =%.50Ff/n/ninput a number to compute its next prime,",xx,yy);
gmp_printf("arbitraryly large:/n");
gmp_scanf("%Zd",c);
mpz_nextprime(r,c);
gmp_printf("after %Zd,closely followed a prime:/n%Zd/n/n",c,r);
mpq_inits(x,y,z,'/0');
gmp_printf("you input two fractions with a plus sign(2/4+1/3),I compute their sum:/n");
gmp_scanf ("%Qd + %Qd",x,y);
mpq_canonicalize(x);
mpq_canonicalize(y);
mpq_add(z,x,y);
gmp_printf("/nactually,after reduction,your equation is:/n%Qd+%Qd = %Qd/nGoodbye!/n",x,y,z);
mpz_clears(m,n,c,r,'/0');
mpq_clears(x,y,z,'/0');
mpf_clears(xx,yy,'/0');
return 0;
}
调用后的结果:
gmp 5.0.1 windows 下编译使用相关推荐
- Windows下编译扩展OpenCV 3.1.0 + opencv_contrib
在Windows下编译扩展OpenCV 3.1.0 + opencv_contrib 为什么要CMake,这里我陈述自己的想法,作为一个刚使用opencv库的小白来说,有以下大概三点内容 1.由于在学 ...
- 实战Windows下编译Opencc 1.0.5
Opencc是中文简繁转换开源项目,支持词汇级别的转换.异体字转换和地区习惯用词转换(中国大陆.台湾.香港). 特点 严格区分「一简对多繁」和「一简对多异」. 完全兼容异体字,可以实现动态替换. 严格 ...
- Windows下编译Chrome V8
主要还是参考google的官方文档: How to Download and Build V8 Building on Windows 同时也参考了一些其它的中文博客: 脚本引擎小pk:SpiderM ...
- Windows下编译 Hadoop
Windows下编译 Hadoop-2.9.2 系统环境 系统: Windows 10 10.0_x64 maven: Apache Maven 3.6.0 jdk: jdk_1.8.0_201 Pr ...
- Windows下编译tensorflow-gpu教程
这两个也要看: https://zhuanlan.zhihu.com/p/29029860 https://zhuanlan.zhihu.com/p/34942873 Windows下编译tensor ...
- Windows下编译TensorFlow1.3 C++ library及创建一个简单的TensorFlow C++程序
参考:https://www.cnblogs.com/jliangqiu2016/p/7642471.html Windows下编译TensorFlow1.3 C++ library及创建一个简单的T ...
- windows下编译支持https的curl
先编译好openssl,过程详见:<windows下编译openssl> 编译好zlib,过程详见<windows下编译zlib> 1. 下载curl 官网:https://c ...
- 在Windows下编译FFmpeg详细说明
在Windows下编译FFmpeg详细说明 MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 Mi ...
- 在windows下编译FFMPEG-最新2009版本
转]在windows下编译FFMPEG-最新2009版本 2010-11-17 18:50 大家可以看到,此篇之前有很多个版本的"在windows下编译FFMPEG",那些都是我在 ...
- windows 下编译libcurl,通过url下载图片数据
windows 下编译libcurl 因为linux平台采用了libcurl,有一个程序移植到到windows平台,再linux采用libcurl.在windows下准备也采用该库.在网上搜索了几位同 ...
最新文章
- Linux用户管理-服务管理
- mysql 3列索引_mysql多列索引
- Jquery 概念性内容编辑器
- ITK:使用连通性细分具有相似统计信息的像素
- python编译后的pyd爆破
- 企业级系统应用,高级组合查询示例讲解 - Jeecg实战
- 使用lhgDialog窗口组件,关闭窗口刷新父页面
- 文件读取 linux_救命,Linux正在吃掉我的内存
- 有了malloc/free为什么还要new/delete ?
- adroid intent使用
- 解决visio图片生成PDF有留白的问题
- 智能卡APDU的命令及其解析
- echarts最简单的南丁格尔玫瑰图+图例
- 浪潮华为,高端存储市场的双头之争
- 据称:韩乔生老师最牛的一次解说――-那是相当的经典!
- android中加载Gif图片
- node 项目 ------ 图片下载(加强ajax理解)
- QCM6490启动流程梳理
- .net framework、.net standard、.net core .net 5/6/7/8 区别
- 拐弯抹角FALSE-实验吧