我非常感谢帮助HElib使用MSVC 2017编译器在Windows 10 x64上运行的一些帮助。通过遵循NTL,我使用相同的编译器成功地编译了它的依赖项this tutorial ,并且还运行了它的测试,因此它似乎运行良好。

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

LINUX:我真正想在Windows上运行它的原因是因为我发现使用Visual Studio调试起来要容易得多。我也更习惯Windows整体。

注意:编译HElib成功需要进行一些修改,例如修复损坏的tr1 include(例如,虽然实际上可用,但它试图包括<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是 buggy 。

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

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

目前,当我在Windows上使用HElib时,我正在使用WSL和CLion(对WSL的支持很好)。

09-05 13:28