windows环境下GMP静态库安装与在Vscode下的使用

更新(2022.09.04)

这个问题很早之前处理过,现在忘了QAQ。不过刚才我用新的方法重新装了gmp,感觉能更简单一些。

  • 安装msys2
  • 打开msys2.exe,执行pacman -Sy mingw64/mingw-w64-x86_64
  • 执行pacman -Sy mingw64/mingw-w64-x86_64-gcc,然后使用同样命令安装gdb(这样之后你的msys2/mingw64/include下已经有gmp.h了)
  • 配置环境变量msys2/mingw64/bin

c文件导入的时候直接#include<gmp.h>,tasks.json里只需要"-l",“gmp"就行了,”-L"那些都不需要了。刚才试了一下是可以的


原方案(2020.04.24)

windows下安装GMP真的是非常烦的事情,要不是ubuntu虚拟机太卡了,我才不这么整

一、安装

1、下载GMP

从官网下载GMP包,本地解压
官网地址:https://gmplib.org/

2、下载msys

msys可以通过MinGW Installation Manager安装:(先讲怎么安装MinGW)
下载MinGW的网址:http://www.mingw.org/
安装MinGW成功后会有安装管理器:(我这里不是安装完的界面,不过差不多)
在这里插入图片描述
把gcc, g++, base, msys啥的都勾选(具体有啥我忘了,配置C/C++时候你们应该整过,不过这不是本文的重点,可以去其他MinGW的博文参考)。重点是msys勾选了,要不然没有msys下面就没办法弄了。
勾选完后菜单栏里Installation->apply changes
这些步骤完成后,查看你的MinGW安装目录下有无msys文件夹。如果有,进入msys文件夹,里面有个msys.bat,这就代表msys安装成功。

3、安装GMP

双击msys.bat,你会看到类似Linux的命令行窗口。通过cd命令进入解压好的gmp文件夹:(假设我把它放在了C:/gmp/),依次执行以下指令

cd C:/gmp
./configure
make
make check
make install

安装过程中,不要认为你电脑卡了,因为这将花费你大量的时间(几个小时)相比之下linux快的不是一星半点。注意,我这里生成的是静态库,生成动态库的方法这里不作描述(别喷我,看标题)。
全部完成后,进入gmp文件夹内,你会看到一个.libs文件夹,里面有.a文件,那就是我们需要的静态库。

二、使用

编写C语言我喜欢用轻便的Vscode,而且vscode的配置可以自行修改。这里提供一种方法,使得在Vscode里能够使用GMP库【这是本人自行尝试的方法,如果有更好的办法欢迎指出】。

1、导入头文件

不用设置includepath,直接如下引用:(我把它放C盘了,路径自己改一下)

#include <C:/gmp/gmp.h>

(我之前也不知道能这么写,尝试出来的)
然后正常打代码,代码补全等功能正常情况下都会正常运行。

2、tasks.json

tasks.json需要做一些小改动(gcc参数)
"args"部分进行如下修改:

"args": [
				"-g",
				"${file}",
				"-o",
				"${fileDirname}\\${fileBasenameNoExtension}.exe",
				"-I",
				"C:\\gmp", //改成你的gmp.h所在文件夹的路径(一般是在gmp文件夹里)
				"-L",
				"C:\\gmp\\.libs",//改成你的libgmp.a静态库所在文件夹的路径(一般在gmp的.libs里)
				"-l",
				"gmp"//表示libgmp.a(gmp静态库)
			],

多了什么呢?-I(大i),-L,-l(小L)。其中-I(大i)及其参数表示到哪里寻找你的gmp头文件。-L及其参数表示去哪里寻找你生成的静态库。-l(小L)表示哪个是你想要的静态库。
然后正常build,run。
快乐~~

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值