(2021.08.04)这篇文章介绍一下NTL库的编译安装过程,也包含测试程序来帮助检查是否已经安装成功
由于NTL库需要依赖GMP库,所以需要先完成GMP的安装,可以参考我的文章「Ubuntu安装GMP」
安装
首先要在https://libntl.org/download.html下载NTL的压缩文件,然后进行解压。
# 安装依赖
sudo apt-get install -y autoconf
sudo apt-get install -y libgf2x-dev
# 解压
tar zxvf ntl-11.5.1.tar.gz
# 进入源代码目录
cd ntl-11.5.1/src
# 编译安装NTL
./configure NTL_GF2X_LIB=on
make && make check && make install
测试
然后用一个随机数的程序1检查一下是否可以成功编译运行:
vim rand.cpp
#include <NTL/ZZ.h>
#include <time.h>
NTL_CLIENT
int main()
{
ZZ a,b,c;
SetSeed(to_ZZ(time(NULL)));
RandomLen(a, 32);
RandomLen(b, 32);
c = a + b;
cout << "a=" << a << ", b=" << b << ", c=" << c << "\n";
return 0;
}
# 编译 rand.cpp
g++ -g -O2 rand.cpp -o rand -lntl -lgmp -lm -pthread
# 运行 rand
./rand
# a=3858548516, b=3249911653, c=7108460169