需求
- HElib库是用C++编写的同态加密开源库,一般在Linux下使用
- 为了不混淆生产环境,使用Docker搭建HElib运行环境
- 本地在Windows下开发,使用的IDE为Clion,本地无HElib运行环境
- 综上,需求是,让CLion连接搭建好HElib的Docker上,在本地CLion中编写代码,在远程服务器的Docker里运行代码
Docker内配置HElib库
参考官方文档:HElib/INSTALL.md
apt安装依赖
1
apt update && apt install git g++ make cmake clang-format m4 patchelf -y
克隆项目,在Docker内或者在Docker外对应挂载的目录下克隆都行
编译安装依赖库 (安装到系统环境)
1 2
mkdir build && cd build cmake -DPACKAGE_BUILD=ON .. && make -j50 && make install
注:
- make中,
-j50
指定线程数,可以不加或者自行调整 - 安装后的路径在
/usr/local/helib_pack
- 安装后HElib就没用了,可以删掉HElib目录 (但建议还是留着…)
- make中,
下面给出我自己的测试过程:
测试代码:HElib_test.cpp
1 2 3 4 5
#include <helib/helib.h> int main() { return 0; }
写一个CMakeLists.txt
1 2 3 4 5 6 7 8 9 10 11
cmake_minimum_required(VERSION 3.12) set(CMAKE_CXX_STANDARD 17) project(Prj LANGUAGES CXX) # 设置项目名 # set up HElib find_package(helib 2.2.0 EXACT REQUIRED) # 引入HElib add_executable(H HElib_test.cpp) # 创建可执行文件 target_link_libraries(H helib) # 链接HElib库
编译测试
1 2 3
mkdir build && cd build cmake .. && make ./H
Clion配置
Clion挂载Docker,详细请移步:Clion Connect Remote Server (Docker)
挂载项目目录,修改Mapping