named-data / mini-ndn

Mininet-based NDN emulator (mailing list: http://www.lists.cs.ucla.edu/mailman/listinfo/mini-ndn)
https://minindn.memphis.edu
GNU General Public License v3.0
72 stars 41 forks source link

error: invalid use of incomplete type ‘class ndn::Signature’ #47

Closed WangwzZB closed 4 years ago

WangwzZB commented 4 years ago

When I want to complie NLSR with the order below: mini-ndn/ndn-src/NLSR$ sudo -E -u root ./waf it shows :

Waf: Entering directory `/home/wwz/mini-ndn-demo/mini-ndn/ndn-src/NLSR/build' [ 8/42] Compiling src/hello-protocol.cpp ../src/hello-protocol.cpp: In member function ‘void nlsr::HelloProtocol::onContent(const ndn::Interest&, const ndn::Data&)’: ../src/hello-protocol.cpp:191:25: warning: ‘ndn::Signature ndn::Data::getSignature() const’ is deprecated: use getSignatureInfo and getSignatureValue [-Wdeprecated-declarations] if (data.getSignature().hasKeyLocator() && ^ In file included from /usr/local/include/ndn-cxx/face.hpp:25:0, from ../src/adjacent.hpp:25, from ../src/adjacency-list.hpp:25, from ../src/conf-parameter.hpp:28, from ../src/hello-protocol.hpp:27, from ../src/hello-protocol.cpp:21: /usr/local/include/ndn-cxx/data.hpp:217:3: note: declared here getSignature() const; ^~~~ ../src/hello-protocol.cpp:191:25: error: invalid use of incomplete type ‘class ndn::Signature’ if (data.getSignature().hasKeyLocator() && ^ In file included from /usr/local/include/ndn-cxx/face.hpp:25:0, from ../src/adjacent.hpp:25, from ../src/adjacency-list.hpp:25, from ../src/conf-parameter.hpp:28, from ../src/hello-protocol.hpp:27, from ../src/hello-protocol.cpp:21: /usr/local/include/ndn-cxx/data.hpp:33:7: note: forward declaration of ‘class ndn::Signature’ class Signature; ^~~~~ ../src/hello-protocol.cpp:192:25: warning: ‘ndn::Signature ndn::Data::getSignature() const’ is deprecated: use getSignatureInfo and getSignatureValue [-Wdeprecated-declarations] data.getSignature().getKeyLocator().getType() == ndn::tlv::Name) { ^ In file included from /usr/local/include/ndn-cxx/face.hpp:25:0, from ../src/adjacent.hpp:25, from ../src/adjacency-list.hpp:25, from ../src/conf-parameter.hpp:28, from ../src/hello-protocol.hpp:27, from ../src/hello-protocol.cpp:21: /usr/local/include/ndn-cxx/data.hpp:217:3: note: declared here getSignature() const; ^~~~ ../src/hello-protocol.cpp:192:25: error: invalid use of incomplete type ‘class ndn::Signature’ data.getSignature().getKeyLocator().getType() == ndn::tlv::Name) { ^ In file included from /usr/local/include/ndn-cxx/face.hpp:25:0, from ../src/adjacent.hpp:25, from ../src/adjacency-list.hpp:25, from ../src/conf-parameter.hpp:28, from ../src/hello-protocol.hpp:27, from ../src/hello-protocol.cpp:21: /usr/local/include/ndn-cxx/data.hpp:33:7: note: forward declaration of ‘class ndn::Signature’ class Signature; ^~~~~ In file included from ../src/logger.hpp:33:0, from ../src/conf-parameter.hpp:26, from ../src/hello-protocol.hpp:27, from ../src/hello-protocol.cpp:21: ../src/hello-protocol.cpp:193:62: warning: ‘ndn::Signature ndn::Data::getSignature() const’ is deprecated: use getSignatureInfo and getSignatureValue [-Wdeprecated-declarations] NLSR_LOG_DEBUG("Data signed with: " << data.getSignature().getKeyLocator().getName()); ^ ../src/hello-protocol.cpp:193:5: note: in expansion of macro ‘NLSR_LOG_DEBUG’ NLSR_LOG_DEBUG("Data signed with: " << data.getSignature().getKeyLocator().getName()); ^ In file included from /usr/local/include/ndn-cxx/face.hpp:25:0, from ../src/adjacent.hpp:25, from ../src/adjacency-list.hpp:25, from ../src/conf-parameter.hpp:28, from ../src/hello-protocol.hpp:27, from ../src/hello-protocol.cpp:21: /usr/local/include/ndn-cxx/data.hpp:217:3: note: declared here getSignature() const; ^~~~ In file included from ../src/logger.hpp:33:0, from ../src/conf-parameter.hpp:26, from ../src/hello-protocol.hpp:27, from ../src/hello-protocol.cpp:21: ../src/hello-protocol.cpp:193:62: error: invalid use of incomplete type ‘class ndn::Signature’ NLSR_LOG_DEBUG("Data signed with: " << data.getSignature().getKeyLocator().getName()); ^ ../src/hello-protocol.cpp:193:5: note: in expansion of macro ‘NLSR_LOG_DEBUG’ NLSR_LOG_DEBUG("Data signed with: " << data.getSignature().getKeyLocator().getName()); ^ In file included from /usr/local/include/ndn-cxx/face.hpp:25:0, from ../src/adjacent.hpp:25, from ../src/adjacency-list.hpp:25, from ../src/conf-parameter.hpp:28, from ../src/hello-protocol.hpp:27, from ../src/hello-protocol.cpp:21: /usr/local/include/ndn-cxx/data.hpp:33:7: note: forward declaration of ‘class ndn::Signature’ class Signature; ^~~~~

Waf: Leaving directory `/home/wwz/mini-ndn-demo/mini-ndn/ndn-src/NLSR/build' Build failed -> task in 'nlsr-objects' failed with exit status 1 (run with -v to display more information)

How to solve it ?

agawande commented 4 years ago

Please do: git pull in NLSR (recently fixed) and re-compile [try ./waf distclean and compile again if that does not work].

WangwzZB commented 4 years ago

That works,thanks!