Today I tested an old HElib
version (back to mid-2017
), but met following compile errors:
......
In file included from EncryptedArray.cpp:15:
EncryptedArray.h:301:19: error: ‘FHE_DEFINE_LOWER_DISPATCH’ has not been declared
301 | NTL_FOREACH_ARG(FHE_DEFINE_LOWER_DISPATCH)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
EncryptedArray.h:303:3: error: ISO C++ forbids declaration of ‘NTL_FOREACH_ARG’ with no type [-fpermissive]
303 | const RX& getG() const { return mappingData.getG(); }
| ^~~~~
......
After some investigation, I found the problem was the NTL
on my system is too new (version is 11.3.2
). So I downloaded an old NTL
version, and specified using this version
in Makefile
:
CFLAGS = -g -O2 -std=c++11 -I../../ntl-10.5.0/include ......
Then it worked like a charm!