Ubuntu20.04搭建HElib过程及使用


在按照网上的教程安装HElib的过程中,遇到一些问题,在这里记录一下安装过程以及问题的解决。
首先,建议使用Ubuntu20.04版本,我一开始用的是18.04版本的,但是在make的过程报错没有得到解决,在查看官方 INSTALL.md的时候发现18.04能下载到的依赖的版本不符合。 (仅供参考) 官方也提出使用20.04版本。
P.S.我在使用20.04版本时没有换源,下载速度也很快。如果发现下载很慢,再考虑换源。

下载所需依赖

  • pthreads
  • git >= 2.27 (required to build and run the HElib test suite)
  • GNU make >= 4.2
  • g++ >= 9.3.0 (recommended g++ 10.3.0)
  • cmake >= 3.16
  • clang-format >= 9.0.0
  • m4 >= 1.4.16
  • patchelf >= 0.9 (if building on Linux)

除了pthreads以外,其他的均使用sudo apt install命令安装,20.04中下载到的版本都是符合的。
但是没有安装也可以成功编译,后面会详细说明。

下载HElib库

github仓库下载

# git clone https://github.com/homenc/HElib.git

1. 创建目录

cd HElib
mkdir build
cd build

2. 运行cmake

cmake -DPACKAGE_BUILD=ON -DCMAKE_INSTALL_PREFIX=/home/wuyy/helib_install ..
/home/wuyy/helib_install是安装路径
在这里插入图片描述

3. 利用make命令编译

# make
# ctest
# make install

P.S.在make步骤时,如果有pthreads库,可以设置make -j16 (数字可改)多线程编译
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
编译的结果在helib_pack中,将其复制到前面创建的安装路径/home/wuyy/helib_install(可更改),再make install(在build目录下)
如果步骤2是通过-DPACKAGE_BUILD=ON运行的,则测试可以用ctest命令

以上就安装完成了,所有头文件都在include中
在这里插入图片描述

参考

简单使用

例子的使用参考examples/README.md
tutorials包含CKKS方案以及8个记录在案的示例,从基本操作到更复杂的序列化
示例程序使用BGV方案

  • BGV_binary_arithmetic(二进制算法)
  • BGV_country_db_lookup(BGV国家数据库查找)
  • BGV_packed_arithmetic(BGV压缩算法)

和上面的步骤一样,要在examples下创建一个build目录,用于构建项目,运行cmake:

mkdir build
cd build
cmake [-Dhelib_DIR=<directory-to-installed-HElib>/share/cmake/helib] <directory-to-examples> ..

我的<directory-to-installed-HElib>是/home/wuyy/helib_install,所以这里的命令为cmake -Dhelib_DIR=/home/wuyy/helib_install/helib_pack/share/cmake/helib ..
在这里插入图片描述
此时bin文件夹里没有东西,make之后生成示例程序
P.S.直接在build目录下make,会make所有示例。也可以进入某一个示例 如BGV_country_db_lookup目录,再执行make
我在这里make了所有的:
在这里插入图片描述
然后bin目录中就有示例程序了
在这里插入图片描述
运行一个示例程序:
./BGV_country_db_lookup
在这里插入图片描述
报错说明要将csv文件复制进当前目录

cp ../../BGV_country_db_lookup/countries_dataset.csv ./
./BGV_country_db_lookup

在这里插入图片描述
运行成功。

猜你喜欢

转载自blog.csdn.net/weixin_45560417/article/details/127845856
今日推荐