Project

General

Profile

Task #3273

Updated by Alex Afanasyev over 8 years ago

I have a problem when I build the ChronoSync on my mac, after I do the ./waf action, the error comes when linking the "build/libChronoSync.dylib". 
 the warning massages are as follow: 

 ``` 
 zhaowenyi94:ChronoSync-master zhaowenichi$ ./waf 
 

 Waf: Entering directory `/Users/zhaowenichi/Downloads/ChronoSync-master/build' 
 

 [ 1/22] Compiling src/diff-state-container.cpp 
 

 [ 2/22] Compiling src/diff-state.cpp 
 

 [ 3/22] Compiling src/interest-container.cpp 
 

 [ 4/22] Compiling src/interest-table.cpp 
 

 [ 5/22] Compiling src/leaf-container.cpp 
 

 [ 6/22] Compiling src/leaf.cpp 
 

 [ 7/22] Compiling src/logic.cpp 
 

 [ 8/22] Compiling src/socket.cpp 
 

 [ 9/22] Compiling src/state.cpp 
 

 [10/22] Compiling tests/main.cpp 
 

 [11/22] Compiling tests/unit-tests/test-diff-state.cpp 
 

 [12/22] Compiling tests/unit-tests/test-empty.cpp 
 

 [13/22] Compiling tests/unit-tests/test-interest-table.cpp 
 

 [14/22] Compiling tests/unit-tests/test-leaf.cpp 
 

 [15/22] Compiling tests/unit-tests/test-logic.cpp 
 

 [16/22] Compiling tests/unit-tests/test-multiple-user.cpp 
 

 [17/22] Compiling tests/unit-tests/test-socket.cpp 
 

 [18/22] Compiling tests/unit-tests/test-state.cpp 
 

 [19/22] Compiling ChronoSync.pc.in 
 

 [20/22] Linking build/libChronoSync.dylib 
 

 Undefined symbols for architecture x86_64: 
   

   "vtable for CryptoPP::SHA256", referenced from: 
       

       CryptoPP::ClonableImpl<CryptoPP::SHA256, CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int,  
  

 CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>, CryptoPP::SHA256> >::Clone() const in diff-state.cpp.1.o 
       

       CryptoPP::ClonableImpl<CryptoPP::SHA256, CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int,  
  

 CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>, CryptoPP::SHA256> >::Clone() const in leaf.cpp.1.o 
       

       CryptoPP::ClonableImpl<CryptoPP::SHA256, CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int,  
  

 CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>, CryptoPP::SHA256> >::Clone() const in logic.cpp.1.o 
       

       CryptoPP::ClonableImpl<CryptoPP::SHA256, CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<unsigned int,  
  

 CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>, CryptoPP::SHA256> >::Clone() const in state.cpp.1.o 

   NOTE: a missing vtable usually means the first non-inline virtual member function has no definition. 
 

 ld: symbol(s) not found for architecture x86_64 
 

 clang: error: linker command failed with exit code 1 (use -v to see invocation) 
 

 Waf: Leaving directory `/Users/zhaowenichi/Downloads/ChronoSync-master/build' 
 

 Build failed 

  -> task in 'ChronoSync' failed (exit status 1):  
	 {task 4535570384: cxxshlib diff-state-container.cpp.1.o,diff-state.cpp.1.o,interest-container.cpp.1.o,interest-table.cpp.1.o,leaf-container.cpp.1.o,leaf.cpp.1.o,logic.cpp.1.o,socket.cpp.1.o,state.cpp.1.o -> libChronoSync.dylib} 

 ['/usr/bin/clang++', '-stdlib=libc++', '-dynamiclib', '-Wl,-compatibility_version,1', '-Wl,-current_version,1', 'src/diff-state-container.cpp.1.o', 'src/diff-state.cpp.1.o', 'src/interest-container.cpp.1.o', 'src/interest-table.cpp.1.o', 'src/leaf-container.cpp.1.o', 'src/leaf.cpp.1.o', 'src/logic.cpp.1.o', 'src/socket.cpp.1.o', 'src/state.cpp.1.o', '-o', '/Users/zhaowenichi/Downloads/ChronoSync-master/build/libChronoSync.dylib', '-framework', 'CoreFoundation', '-framework', 'Security', '-L/opt/local/lib', '-L/opt/local/lib', '-lboost_system-mt', '-lboost_iostreams-mt', '-lboost_unit_test_framework-mt', '-lndn-cxx', '-lboost_system-mt', '-lboost_filesystem-mt', '-lboost_date_time-mt', '-lboost_iostreams-mt', '-lboost_regex-mt', '-lboost_program_options-mt', '-lboost_chrono-mt', '-lboost_random-mt', '-lcryptopp', '-lsqlite3', '-lpthread'] 
 ``` 

 I really checked the prerequisite on ndn-cxx website and there are nothing missed, so I was wondering the reason of that fail. I would be really appreciate if anyone of the team can help me. Thanks!

Back