1

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

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

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

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

4

1 回答 1

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)。

于 2018-07-23T14:38:01.747 回答