直接给出shell脚本,脚本与安装包(m4-1.4.18.tar.gz,gmp-6.2.0.tar.xz,gf2x-1.3.0.tar.gz,ntl-11.4.3.tar.gz)放到同一目录,赋予此脚本执行权限。另外,我这里默认你的电脑上面已经安装gcc,g++,make。安装包有的需要外网才能下,所以我就分享一下:链接: https://pan.baidu.com/s/1gj0DuBYEBTN4L5IGddjc-Q 密码: wa3p
tar Jxvf gmp-6.2.0.tar.xz
tar zxvf m4-1.4.18.tar.gz
tar zxvf ntl-11.4.3.tar.gz
tar zxvf gf2x-1.3.0.tar.gz
mv gmp-6.2.0 gmp
mv m4-1.4.18 m4
mv ntl-11.4.3 ntl
mv gf2x-1.3.0 gf2x
echo -e "\033[31m start install m4 module \033[0m"
cd m4
./configure -prefix=/usr/local
make && make check && make install
cd - >> /dev/null
echo -e "\033[31m start install gmp \033[0m"
cd gmp
./configure --enable-static --disable-shared --with-pic
make && make check && make install
cd - >> /dev/null
echo -e "\033[31m start install gf2x \033[0m"
cd gf2x
./configure --enable-static --disable-shared --with-pic
make && make check && make install
cd - >> /dev/null
echo -e "\033[31m start install ntl \033[0m"
cd ntl/src
./configure NTL_GF2X_LIB=on
make && make check && make install
cd - >> /dev/null
rm -r gmp
rm -r m4
rm -r ntl
rm -r gf2x
测试一下:新建一个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;
}
按照官网的介绍,使用如下命令编译:
g++ -g -O2 -std=c++11 -pthread -march=native rand.cpp -o rand -lntl -lgmp -lm
其中rand.cpp是c++文件,rand是编译后的可执行文件。
下面执行可执行文件
./rand
输出三个数字,a与b是随机数,c是a与b之和。
参考链接:https://blog.csdn.net/tzwh_86/article/details/9372411#commentBox