Не удается запустить HElib, но он работает на Windows 10 x64 - PullRequest
0 голосов
/ 24 июня 2018

Я бы очень признателен за помощь в получении HElib для работы в Windows 10 x64 с использованием компилятора MSVC 2017.Мне успешно удалось скомпилировать его зависимость NTL , используя тот же компилятор, выполнив этот учебник , а также запустил его тесты, поэтому, похоже, он работает хорошо.

ОднакоВ случае с HElib я попытался сгенерировать проекты Visual Studio, используя cmake , а затем успешно скомпилировал его (см. NOTE ниже), но запустить его не удалось.Например, я запустил тест Test_binaryCompare.cpp_exe (имеет собственный vcproj, сгенерированный cmake), но он не прошел, потому что достиг части кода, я сомневаюсь, что это необходимо (он пытается выполнить операцию под названием bootstrapping и он отключен для этого теста).Тем не менее, в Linux это работает.

LINUX: Причина, по которой я действительно хотел бы запустить это в Windows, заключается в том, что я считаю, что его намного проще отладить с помощьюVisual Studio.Я также больше привык к Windows в целом ..

ПРИМЕЧАНИЕ: Для компиляции HElib успешно потребовались некоторые модификации, такие как исправление неработающих включений tr1 (например, он пытался включить <tr1/memory> вместопросто memory, хотя последний действительно был доступен), подавляя ошибку 4146 (я также должен был сделать это для NTL) и исправляя два экземпляра массивов переменной длины, которые, к сожалению, компилятор Microsoft не поддерживает.

1 Ответ

0 голосов
/ 23 июля 2018

Без каких-либо сообщений об ошибках я не могу помочь вам выяснить ваши точные проблемы, но я портировал HElib в Windows некоторое время назад: https://github.com/AlexanderViand/HElib/tree/Windows
Это немного устарело, но если тесты работают в этой версии, выможете сравнить сделанные мной изменения с вашими изменениями.

Существует также вариант, с которым вы просто столкнетесь с этой проблемой: https://github.com/shaih/HElib/issues/228
Если ваша версия NTL для Linux немного старше, она может быть просточто ваша версия NTL для Windows является ошибочной.

Наконец, я бы очень рекомендовал не запускать HElib в Windows, потому что без GMP это кажется мучительно медленным.

Вместо этого я закончил настройку виртуальной машины докера и SSH'd ее из Visual Studio: https://hub.docker.com/r/alexanderviand/visual-studio-linux-build-box-with-helib/

В настоящее время я использую WSL и CLion (который поддерживает WSLочень хорошо) когда я работаю с HElib на Windows.

...