I am trying to compile this library ndn-cxx in my laptop. I already tried in another computer and it compiled successfully but now i am getting this error and i think its related somhow to openssl. I verify that i have openssl in my laptop using sudo apt-cache search libssl | grep SSL and the result is :
- libssl-ocaml - OCaml bindings for OpenSSL (runtime)
- libssl-ocaml-dev - OCaml bindings for OpenSSL
- libssl0.9.8 - SSL shared libraries
- libsslcommon2 - enterprise messaging system - common SSL libraries
- libsslcommon2-dev - enterprise messaging system - common SSL development files
The error I am getting when trying to compile the library is :
../src/security/transform/hmac-filter.cpp:49:12: error: field ‘m_context’ has incomplete type
HMAC_CTX m_context;
^
../src/security/transform/hmac-filter.cpp: In constructor
‘ndn::security::transform::HmacFilter::Impl::Impl()’:
../src/security/transform/hmac-filter.cpp:35:20: error: ‘m_context’ was not declared in this scope
HMAC_CTX_init(&m_context);
^
../src/security/transform/hmac-filter.cpp:35:29: error: ‘HMAC_CTX_init’ was not declared in this scope
HMAC_CTX_init(&m_context);
^
../src/security/transform/hmac-filter.cpp: In destructor ‘ndn::security::transform::HmacFilter::Impl::~Impl()’:
../src/security/transform/hmac-filter.cpp:40:23: error: ‘m_context’ was not declared in this scope
HMAC_CTX_cleanup(&m_context);
^
../src/security/transform/hmac-filter.cpp:40:32: error: ‘HMAC_CTX_cleanup’ was not declared in this scope
HMAC_CTX_cleanup(&m_context);
^
../src/security/transform/hmac-filter.cpp: In member function ‘ndn::security::transform::HmacFilter::Impl::operator HMAC_CTX*()’:
../src/security/transform/hmac-filter.cpp:45:13: error: ‘m_context’ was not declared in this scope
return &m_context;
^
../src/security/transform/hmac-filter.cpp:46:3: warning: control reaches end of non-void function [-Wreturn-type]
}
^
HMAC_CTXis a public data structure. Ensure#include <openssl/hmac.h>is present in the problematic source file. If the include is present, then we need to know where your copy of OpenSSL is located, and how you configured your project. OpenSSL 0.9.8 is really old and its past EOL. But its<hmac.h>includesHMAC_CTX. Are you on an OS X machine?libssl.1.0.0(IIRC). How is it you are usinglibssl0.9.8? Anyway, make sure thessl-devpackage is installed. That's OpenSSL header files.sudo apt-get install build-essential libcrypto++-dev libsqlite3-dev libboost-all-dev libssl-devto make sure you have all the dependencies?