无法很好地运行HElib,但它基于Windows 10 x64构建

时间:2018-06-24 17:49:37

标签: c++ visual-studio cmake cryptography ntl

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

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

LINUX: 我之所以很想在Windows上运行它,是因为我发现使用Visual Studio调试起来要容易得多。我也更习惯于Windows。

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

1 个答案:

答案 0 :(得分:1)

没有任何错误消息,我无法真正帮助您解决确切的问题,但前一段时间我将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的支持很好)。