不能很好地运行HElib,但它建立在Windows 10 x64上



>我非常感谢一些帮助,让HElib使用MSVC 2017编译器在Windows 10 x64上工作。按照本教程,我成功地使用相同的编译器编译了它的依赖项 NTL,并且还运行了它的测试,所以它似乎运行良好。

但是,在HElib的情况下,我尝试使用cmake生成Visual Studio项目,然后成功编译它(请参阅下面的注释(,但是运行它失败了。例如,我运行了Test_binaryCompare.cpp_exe测试(有自己的vcproj由 cmake 生成(,但它失败了,因为它到达了我怀疑它应该到达的代码的一部分(它尝试执行称为引导的操作,并且该测试被禁用(。但是,在Linux上它可以工作。

LINUX: 我真的很想在Windows上运行它的原因是因为我发现使用Visual Studio进行调试要容易得多。总的来说,我也更习惯于Windows。

注意:成功编译 HElib 需要进行一些修改,例如修复损坏的tr1include (例如,它试图包含<tr1/memory>而不仅仅是memory,尽管后者实际上可用(,抑制 4146 错误(我也必须为 NTL 执行此操作(并修复两个可变长度数组实例,遗憾的是Microsoft的编译器不支持这些实例。

没有任何错误消息,我无法真正帮助您找出确切的问题,但我前段时间将 HElib 移植到 Windows: https://github.com/AlexanderViand/HElib/tree/Windows
它有点过时了,但如果测试在该版本中有效,您可以对照您的更改检查我所做的更改。

还有一个选项,你只是遇到了这个问题:https://github.com/shaih/HElib/issues/228
如果你的 Linux 版本的 NTL 稍微旧一点,可能只是你的 Windows 版本的 NTL 是有问题的。

最后,我非常建议不要在Windows上运行HElib,因为如果没有GMP,它似乎非常慢。

相反,我最终设置了一个docker虚拟机,并从Visual Studio中SSH进入了它:https://hub.docker.com/r/alexanderviand/visual-studio-linux-build-box-with-helib/

目前,当我在Windows上使用HElib时,我正在使用WSL和CLion(它们很好地支持WSL(。

最新更新