Task #3273
Updated by Alex Afanasyev about 9 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!