已经成功安装了gmp和ntl,接下来安装和调试HElib。
下载HElib
从GitHub上拉取项目,注册账号后通过这里https://github.com/homenc/HElib下载,可以先右上角Fork到自己的账号下,然后通过Git下载到本地。
先安装Git:
sudo apt-get install git
点“Fork”就在自己的账号下克隆了一个HElib仓库,然后从自己的账号下clone(其实可以直接从他人的账号下clone,但是只有从自己的账号下clone才可以推送修改):
git clone https://github.com/wangjinglin0721/HElib.git
这样就可以在主目录下看到HElib文件夹,项目克隆完成。
编译HElib
在HElib目录的src文件夹下对Makefile文件进行操作:
# Change the Makefile as the following:
Line 19: COPT = -g -O2 -std=c++11 -march=native
Line 85: #(Insert the following contents)
install:
cp -p fhe.a /usr/local/lib/libfhe.a
chmod a+r /usr/local/lib/libfhe.a
rm -rf /usr/local/include/fhe
mkdir -m 755 /usr/local/include/fhe
cp -p *.h /usr/local/include/fhe/
chmod -R a+r /usr/local/include/fhe
修改后保存文件,在该目录下make:
$ make
$ make check
$ sudo make install
对文件执行 make 操作,此时编译产生了许多的.o 文件, 与此同时我们还可以在 src 文件夹中发现自动生成了 fhe.a 的静态链接库。
make check可以产生可执行文件_x,(但是由于电脑配置问题,部分文件无法运行成功,卡住了,所以强行跳过这步直接安装。。。)
测试
接下来进行测试,任意一个 src 文件夹下的cpp文件都可以编译运行,例如Test_General.cpp:
g++ -pthread -g -O2 -std=c++11 -march=native -DFHE_THREADS -DFHE_BOOT_THREADS -o Test_General_x Test_General.cpp fhe.a -lntl -lgmp -lm
生成Test_General_x可执行文件。
运行程序:
./Test_General_x