windows环境下的gmp大数运算库的配置(visual studio 2019 + gmp-6.2.0 + msys)

2020年9月25日更新:

一种更为方便的配置方法参见如何在 Windows 10/Visual Studio 中愉快地使用第三方库——配环境竟然如此简单!,别忘了注意文章第3节的注意事项啦!

 

吐槽在前:终于!!搞定了!!!几乎算是熬了一个通宵才配置好。。。。。以往编程都在虚拟机环境下的Ubuntu里用C语言,现在不知为何异常之卡;于是乎在发现了gmp的Python版本gmpy2后,投入了Python的怀抱;然鹅,Python的执行效率实在是太太太太太慢了,两个500*500的矩阵乘法(带来点自定义的算法),结果测了下时,估计完成时间要45 Day+。。。。。不想再优化了。。于是乎在deadline来临之际,打算重新移植回C语言,奈何不想用虚拟机那个卡卡的sublime编辑器了,于是打算重回Windows下Visual Studio的怀抱;然鹅。。。Windows下的第三方库的配置真是头大啊啊啊(其实可能也只是我自己业务不熟罢了,所以前面才不用Windows下的C++啊!!!不得不说,Python和Linux都不能太舒服。。。)网上的安装教程实在是太云里雾里了,对于我这种已经放弃思考的学畜而言着实难以理解;在即将绝望之前,死马当活马医之后余,发现终于配通了!!(奈何距离我的deadline缩短了一天。。。。。)闲话少说,直接上一步一步图文并茂的傻瓜式教程(以防我日后重装时忘却了;还有,感谢网上的各位前辈大牛们的教程,吐槽归吐槽,没有你们,我就算到了猴年马月也配不完。。。)

安装环境与要用到的软件及其相关版本:

Windows 10;Visual Studio 2019;gmp-6.2.0;msys 1.0.18;gcc 6.3.0

 

一种更为简便的配置方式

参见如何在 Windows 10/Visual Studio 中愉快地使用第三方库——配环境竟然如此简单!,别忘了注意文章第3节的注意事项啦!

 

正文开始(以下配置较为繁琐,但是舍不得删除啦;这里强烈建议使用《如何在 Windows 10/Visual Studio 中愉快地使用第三方库——配环境竟然如此简单!》中的方法进行配置!!超简便的)

1. 配好gcc环境

好吧,我承认我这里偷懒了,因为我的电脑在很早以前就转了gcc了,emmm,也不想再装一遍(笑哭),百度搜索MinGW吧,应该是很简单,最终效果是在CMD中输入gcc --version能出现版本号,就OK了。

黄色部分咧只是我截图时勾勒上为了突出强调的,后面也是如此(所以没看到黄色不要慌张啊啊啊)

安装好gcc后,后面就好说啦~

2. 下载gmp源码

打开链接https://gmplib.org/#DOWNLOAD,下载gmp源码。

我选择的是中间的这个gmp-6.2.0.tar.xz进行下载。

3. 下载msys

打开链接https://sourceforge.net/projects/msys/,点击download下载即可。

4. 编译gmp

刚刚第3步,下载到的是msys.zip压缩文件,解压后打开它。

然后双击msys.bat,运行,效果如图。

运行msys.bat后,在msys文件夹的home文件夹里,除Administrator以外,会生成一个以你的用户名命名的文件夹,(不一定是chenj),把前面第2步下载得到的gmp-6.2.0.tar.xz拷进来。

而后,在从msys.bat打开的终端里,输入ls,应能出现该压缩文件。

尔后,依次输入如下指令:

tar -xvf gmp-6.2.0.tar.xz
cd ./gmp-6.2.0
./configure --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --disable-static --enable-shared --enable-cxx
make
make check
make install

该过程,耗时可能比较长,请耐心等待。当最后顺利编译成功时,如图所示。

5. 配置Vstudio Studio

打开Vistudio Studio 2019,我这里新建了一个叫做Test_For_GMP的工程作为演示。

依次点击“项目(P) → 属性(P)”,打开当前工程的属性页,如图所示。

选择“C/C++ → 常规”,将“附加保护目录”加上先前解压的gmp-6.2.0文件夹的完整路径名(即gmp.h、gmpxx.h头文件所在的目录),同时,将“SDL检查”设置为“否(/sdl-)”。

在“链接器 → 常规”的“附加库目录”中,添加上刚刚编译出来得到的.libs文件夹的完整路径名(即libgmp.dll.a、libgmpxx.dll.a、libgmp-10.dll、libgmpxx-4.dll等所在的目录),同时,将其中的libgmp-10.dll和libgmpxx-4.dll拷贝至C://Windows/SysWOW64和C://Windows/System32之中。

在“链接器 → 输入”的“附加依赖项中,添加上libgmp.dll.a和libgmpxx.dll.a。

最后,别忘了将红圈部分,要和蓝圈部分相一致。

至此,大功告成。

测试

最后,写个C++风格的测试代码。

结果如图。

完美。

gmpxx.h已经将大数封装为类,并已对常见的加减乘除操作进行了重载。

如果是C语言的话,头文件为gmp.h,如图所示。

结果也是一样的。

写在最后:啊啊,终于配好了,也写好了,总算是搞定了。现在回想起来,其实感觉也不过就这个样,然而在一开始一脸懵逼、对什么都不熟悉的时候,配环境简直就是噩梦。好了,接下来总算能愉快地在Windows下编程了,想来未来若按照其他库的话,应该流程也是大同小异吧。下午得开始继续进行实验了(一个寒假几乎全都耗在这了关键快开学了还没搞完),那么就许愿实验能有个理想的结果吧~

最后的最后:感谢配置环境时所阅读到的文章,正是因为这些,我才能顺利完成配置,在此列出,表示感谢。

msys2+编译gmp64位动态库+VS2017配置

编译gmp在windows下可以使用的动态库和静态库

c++ gmp安装及使用摘要

vs 2017中“附加包含目录”添加无效 [问题点数:40分]

 

 

 

  • 25
    点赞
  • 128
    收藏
    觉得还不错? 一键收藏
  • 76
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 76
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值