golang github.com/Nik-U/pbc使用前windows配置

文章详细介绍了在Windows环境下,如何通过安装mingw64和msys,编译GMP和PBC库,配置Go语言环境,最终成功使用github.com/Nik-U/pbc的步骤。包括下载源码,配置选项,以及进行编译和测试。
摘要由CSDN通过智能技术生成

windows安装pbc

1.安装mingw64

(可以尝试跳过这个步骤,在msys中直接安装mingw64-gcc具体自己查)

下载地址mingw64
在这里插入图片描述
  建议不使用在线安装。下载后直接解压,建议不要放在有空格的目录,我自己有报错无法识别Program Files (x86)这个目录,只能识别到Program。
  配置环境变量,将D:\mingw64\bin添加到Path中。

2.安装msys

下载地址msys
在这里插入图片描述
  下载后放在mingw目录下直接解压。
  这边也将D:\mingw64\msys\local\bin添加到Path中,因为后面编译成功的libgmp-10.dll和libpbc-1.dll在其中。当然你也可以设置编译输出地址来更改,我都是默认输出。

3.编译GMP

参考windows环境下的gmp大数运算库的配置(visual studio 2019 + gmp-6.2.0 + msys)
步骤几乎一样。

1、检测gcc

在这里插入图片描述

2、下载gmp的源码

下载地址gmp
在这里插入图片描述

3、编译gmp

1.将下载好的gmp压缩包放在D:\mingw64\msys\home\14230中
2.运行msys.bat
3.输入如下命令

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

这个编译过程较长。最后出现如参考中一样的图就可以了。

3.编译PBC

1.下载PBC源码
下载地址PBC
2.将源码压缩包放入D:\mingw64\msys\home\14230中
3.在msys中输入如下命令

tar -xvf pbc-0.5.14.tar.gz
cd ./pbc-0.5.14
./configure LDFLAGS="-LD:/mingw64/msys/local/lib -lgmp" CPPFLAGS="-ID:/mingw64/msys/local/include" --disable-static --enable-shared
make
//make check
make install

LDFLAGS其实就是找libgmp.a文件的位置,CPPFLAGS是gmp.h的目录。可以安装everything去查找。在D:\mingw64\msys\local\bin目录中出现libpbc-1.dll。

4.配置golang

在环境变量中添加CGO_CPPFLAGS=-ID:\mingw64\msys\local\include和CGO_LDFLAGS=-LD:\mingw64\msys\local\lib分别对应的就是pbc编译时添加的。

5.测试

go get ithub.com/Nik-U/pbc


```go
package main

import (
	"fmt"
	"github.com/Nik-U/pbc"
)

func main() {
	// 生成Pairing参数
	params := pbc.GenerateA(160, 512)

	// 创建Pairing对象
	pairing := pbc.NewPairing(params)

	// 生成G1和G2群的元素
	g1 := pairing.NewG1().Rand()
	g2 := pairing.NewG2().Rand()

	// 计算双线性配对结果
	e := pairing.NewGT().Pair(g1, g2)

	// 输出结果
	fmt.Println("g1 =", g1)
	fmt.Println("g2 =", g2)
	fmt.Println("e(g1, g2) =", e)
}
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值