Closed asdcksk closed 5 years ago
Looks like you have an older version of helib. Please make sure you have the latest.
I just downloaded again HElib now and run it without any flags and make & make check work! Thank you, Victor!
One more question: where I can find ready to use HElib? There's no in usr/local =/ Whether I shall use it from the HElib-master/src folder? And how i can start tests at least? Command "run" doesn't work..
You can laugh, I'm a lamer in it :D
I want to try it in the educational purposes for using in the master thesis... How I can use this library for implementation of fully homomorphic encryption in cloudy service, for example? Is anybody, who can hint me? :)
P.S. sorry for off-top
@asdcksk
HElib builds library right in the src
directory, it's called fhe.a
. I just added a pull request #61 that allows for installation with make install
, but for now, when building your program, you have to specify the path to HElib include files and HElib built library.
g++ -I/path/to/helib/src yourprogram.cpp /path/to/helib/src/fhe.a -lgmp -lntl
Alternatively, you can write your program in HElib's src
directory and run
make yourprogram_x
For non-production purposes, you could also try my FHE library called libshe which is easier to use, mostly because the crypto behind it is much simpler.
@asdcksk hi, I have the same problem, NTL/ZZ.h : there is no that file compilation terminated make: *\ [NumbTh.o] Error 1 do you solve this problem, I am looking forward your answer,Thank you
Hi, I got the same error while trying to install the library available at https://github.com/dwu4/fhe-si. I have ntl version 10.3.0. Can anyone please tell me how to fix it?
g++ -g -O2 -Wall -std=c++0x -I/usr/local/include -Wno-delete-non-virtual-dtor -o build/DoubleCRT.o -c DoubleCRT.cpp
DoubleCRT.cpp: In member function ‘double DoubleCRT::addPrimesAndScale(const IndexSet&)’:
DoubleCRT.cpp:195:67: error: no matching function for call to ‘PrepMulModPrecon(long int&, long int&, double)’
mulmod_precon_t bninv = PrepMulModPrecon(f, qi, 1.0/(double)qi);
^
In file included from /usr/local/include/NTL/ZZ.h:22:0,
from /usr/local/include/NTL/vec_ZZ.h:5,
from /usr/local/include/NTL/ZZX.h:5,
from DoubleCRT.cpp:26:
/usr/local/include/NTL/sp_arith.h:769:1: note: candidate: long unsigned int NTL::PrepMulModPrecon(long int, long int, NTL::sp_inverse)
PrepMulModPrecon(long b, long n, sp_inverse ninv)
^~~~
/usr/local/include/NTL/sp_arith.h:769:1: note: no known conversion for argument 3 from ‘double’ to ‘NTL::sp_inverse’
/usr/local/include/NTL/sp_arith.h:869:31: note: candidate: NTL::mulmod_precon_t NTL::PrepMulModPrecon(long int, long int)
static inline mulmod_precon_t PrepMulModPrecon(long b, long n)
^~~~
/usr/local/include/NTL/sp_arith.h:869:31: note: candidate expects 2 arguments, 3 provided
Makefile:50: recipe for target 'build/DoubleCRT.o' failed
make: *** [build/DoubleCRT.o] Error 1
This looks like the are using an old version of helib
Sent from my iPad
On Feb 4, 2017, at 2:21 AM, ShijiMariam notifications@github.com wrote:
Hi, I got the same error while trying to install the library available at https://github.com/dwu4/fhe-si. I have ntl version 10.3.0. Can anyone please tell me how to fix it?
g++ -g -O2 -Wall -std=c++0x -I/usr/local/include -Wno-delete-non-virtual-dtor -o build/DoubleCRT.o -c DoubleCRT.cpp DoubleCRT.cpp: In member function ‘double DoubleCRT::addPrimesAndScale(const IndexSet&)’: DoubleCRT.cpp:195:67: error: no matching function for call to ‘PrepMulModPrecon(long int&, long int&, double)’ mulmod_precon_t bninv = PrepMulModPrecon(f, qi, 1.0/(double)qi); ^ In file included from /usr/local/include/NTL/ZZ.h:22:0, from /usr/local/include/NTL/vec_ZZ.h:5, from /usr/local/include/NTL/ZZX.h:5, from DoubleCRT.cpp:26: /usr/local/include/NTL/sp_arith.h:769:1: note: candidate: long unsigned int NTL::PrepMulModPrecon(long int, long int, NTL::sp_inverse) PrepMulModPrecon(long b, long n, sp_inverse ninv) ^~ /usr/local/include/NTL/sp_arith.h:769:1: note: no known conversion for argument 3 from ‘double’ to ‘NTL::sp_inverse’ /usr/local/include/NTL/sp_arith.h:869:31: note: candidate: NTL::mulmod_precon_t NTL::PrepMulModPrecon(long int, long int) static inline mulmod_precon_t PrepMulModPrecon(long b, long n) ^~ /usr/local/include/NTL/sp_arith.h:869:31: note: candidate expects 2 arguments, 3 provided Makefile:50: recipe for target 'build/DoubleCRT.o' failed make: *** [build/DoubleCRT.o] Error 1
— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.
Isn't the function PrepMulModPrecon(long int&, long int&, double) from the NTL library? Then how will it be the problem of helib library?
That ntl interface got upgraded in a non backward compatible way. A very old version of helib uses the old interface, which is no longer supported
ShijiMariam notifications@github.com wrote:
Isn't the function PrepMulModPrecon(long int&, long int&, double) from the NTL library? Then how will it be the problem of helib library?
-- You are receiving this because you commented. Reply to this email directly or view it on GitHub: https://github.com/shaih/HElib/issues/60#issuecomment-277455134
-- Sent from my Android device with K-9 Mail. Please excuse my brevity.
Thank you for your response. I will look into it.
Closing as this is a very old issue reported against an old version of HElib. The entire install process has changed and we don't believe the reported issue is present in the current HElib version.
Hello to all! Please, help with solving problems of installation of HElib. As well as it is told in a manual, I set gmp (version 6.0.0) and ntl (at first 9.0.2, then 9.1.1) OS: ubuntu-14.04.2-desktop-amd64 I set libraries according to the instructions in the file INSTALL.txt In Makefile tried to add and delete flags - std=c ++ 11 - lstdc ++ and - std=c ++ 0x But in case of a command 'make' in the console errors continue to appear(with flag -std=c=++0x):
HElib requires NTL version 6.1.0 or higher, see http://shoup.net/ntl If you get compilation errors, try to add/remove -std=c++11 in Makefile
g++ -g -O2 -Wfatal-errors -Wshadow -Wall -I/usr/local/include -c NumbTh.cpp NumbTh.cpp: In function ‘void MulMod(NTL::ZZX&, const NTL::ZZX&, long int, long int, bool)’: NumbTh.cpp:557:63: error: no matching function for call to ‘PrepMulModPrecon(long int&, long int&, double)’ mulmod_precon_t aqinv = PrepMulModPrecon(a, q, 1/((double)q)); ^ compilation terminated due to -Wfatal-errors. make: *\ [NumbTh.o] Error 1
Please, give advice for correction of these errors. Thanks in advance.