目的: NTL 可以用来实现密码算法的高效C++库.
其他密码库: Sage(Python)
环境: Windows, Msys2, Mingw64
参考官方文档
基本步骤
- 首先安装msys2(利用Mingw,也可以利用cygwin)
- 将unix版本NTL库下载解压到msys2安装文件夹
- 从msys2 cd 该目录, 执行下列操作, 注意较慢(好像要提前安装gmp, 但是好像又会自己安装, 我是后面安装gmp的)
PS: 安装慢
- 安装成功后, 会在msys2 /usr/local/include 或lib生成ntl库文件
- 测试, 在任意目录建立foo.cpp,
编译 g++ -g -O2 -std=c++11 -pthread -march=native foo.cpp -o foo -lntl -lgmp -lm
#include <NTL/ZZ.h>
using namespace std;
using namespace NTL;
int main()
{
ZZ a;
cin >> a;
cout << a << "\n";
}
- 执行
问题
- 说在NTL src 目录可以直接make, 经过测试, 值得是解压缩NTL src的目录.