如何安装HElib?

如何安装HElib?

我将文件 HElib-master.zip 解压到我的下载文件夹中。

然后我在文件夹 Downloads/HElib-master/src 中获得了文件 fhe.a,但是当我make Test_General按照此处指示运行命令时http://shaih.github.io/HElib/ 我收到如下编译错误:

/tmp/ccqnVZGx.o: In function TestIt(long, long, long, long, long, long, long, long, long, NTL::Vec<long> const&, NTL::Vec<long> const&):
Test_General.cpp:(.text+0x32a): undefined reference to FHEcontext::FHEcontext(unsigned long, unsigned long, unsigned long, std::vector<long, std::allocator<long> > const&, std::vector<long, std::allocator<long> > const&)

我将其复制fhe.a到我的urs/local/usr/local/include但是usr/local/lib没有作用。

如何安装 HElib 以便我可以编译我的源代码?或者我该怎么做才能解决这些“未定义的引用”错误?

答案1

在目录中构建测试程序的正确方法HElib/src似乎是通过一个名为的目标,Test_General_x而不是简单的Test_General例如

$ make Test_General_x
HElib requires NTL version 9.4.0 or higher, see http://shoup.net/ntl
If you get compilation errors, try to add/remove -std=c++11 in Makefile

g++ -g -O2  -o Test_General_x Test_General.cpp fhe.a -L/usr/local/lib -lntl -lgmp  -lm

Makefile 的相关部分是

./%_x: %.cpp fhe.a
        $(CC) $(CFLAGS) -o $@ $< fhe.a $(LDLIBS)

您可以看到添加了fhe.a库依赖项。

相关内容