jancarlsson / snarkfront

a C++ embedded domain specific language for zero knowledge proofs
MIT License
58 stars 12 forks source link

Problem building everything as statically linked #5

Closed robertsdotpm closed 8 years ago

robertsdotpm commented 8 years ago

Hello, I'm trying to build the library statically on Ubuntu 14.04 but I get errors when it comes to building the tests.

After installing the dependencies I run: sudo make archive tools tests PREFIX=/usr/local and get the following errors:

/usr/local/include/cryptl/Digest.hpp:21:21: note:   template argument deduction/substitution failed:
/usr/local/include/cryptl/Digest.hpp:62:10: note:   ‘cryptl::digest(T, const std::vector<unsigned char>&) [with T = cryptl::SHA_256<snarkfront::AST_Var<snarkfront::Alg<unsigned int, snarklib::Field<snarklib::FpModel<4l, (* & snarkfront::BN128_MODULUS_R)>, 1ul>, snarkfront::BitwiseOps, snarkfront::EqualityCmp> >, snarkfront::Lazy<snarkfront::AST_Var<snarkfront::Alg<unsigned int, snarklib::Field<snarklib::FpModel<4l, (* & snarkfront::BN128_MODULUS_R)>, 1ul>, snarkfront::BitwiseOps, snarkfront::EqualityCmp> >, unsigned int>, snarkfront::AST_Var<snarkfront::Alg<unsigned char, snarklib::Field<snarklib::FpModel<4l, (* & snarkfront::BN128_MODULUS_R)>, 1ul>, snarkfront::BitwiseOps, snarkfront::EqualityCmp> >, cryptl::SHA_Functions<snarkfront::AST_Node<snarkfront::Alg<unsigned int, snarklib::Field<snarklib::FpModel<4l, (* & snarkfront::BN128_MODULUS_R)>, 1ul>, snarkfront::BitwiseOps, snarkfront::EqualityCmp> >, snarkfront::AST_Op<snarkfront::Alg<unsigned int, snarklib::Field<snarklib::FpModel<4l, (* & snarkfront::BN128_MODULUS_R)>, 1ul>, snarkfront::BitwiseOps, snarkfront::EqualityCmp> >, snarkfront::BitwiseAST<snarkfront::Alg<unsigned int, snarklib::Field<snarklib::FpModel<4l, (* & snarkfront::BN128_MODULUS_R)>, 1ul>, snarkfront::BitwiseOps, snarkfront::EqualityCmp> > > >; typename T::DigType = std::array<snarkfront::AST_Var<snarkfront::Alg<unsigned int, snarklib::Field<snarklib::FpModel<4l, (* & snarkfront::BN128_MODULUS_R)>, 1ul>, snarkfront::BitwiseOps, snarkfront::EqualityCmp> >, 8ul>]::__lambda59’ is not derived from ‘std::function<bool(typename T::WordType&, std::basic_istream<char>&)>’
         });
          ^
/usr/local/include/cryptl/Digest.hpp:37:21: note: template<class T> typename T::DigType cryptl::digest(T, std::istream&)
 typename T::DigType digest(T hashAlgo, std::istream& is)
                     ^
/usr/local/include/cryptl/Digest.hpp:37:21: note:   template argument deduction/substitution failed:
/usr/local/include/cryptl/Digest.hpp:62:10: note:   candidate expects 2 arguments, 3 provided
         });
          ^
/usr/local/include/cryptl/Digest.hpp:49:21: note: template<class T> typename T::DigType cryptl::digest(T, const std::vector<unsigned char>&)
 typename T::DigType digest(T hashAlgo, const std::vector<std::uint8_t>& a)
                     ^
/usr/local/include/cryptl/Digest.hpp:49:21: note:   template argument deduction/substitution failed:
/usr/local/include/cryptl/Digest.hpp:62:10: note:   cannot convert ‘ss’ (type ‘std::stringstream {aka std::basic_stringstream<char>}’) to type ‘const std::vector<unsigned char>&’
         });
          ^
make: *** [test_proof] Error 

The header files all exist in /usr/local/include, btw, the directory looks like this: bn.h cryptl cybozu gmp.h gmpxx.h libsnark snarklib supercop zm2.h zm.h

robertsdotpm commented 8 years ago

Figured it out: will post some decent install instructions soon

babyhead commented 8 years ago

Can you please post the fix for this issue.