我非常感谢帮助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 数组。