ld: symbol(s) not found

This might be a very basic issue, but I get the “ld: symbol(s) not found” error when using make to compile the samples. Specifically:

q - obj/release/bank_checker.cpp_o

q - obj/release/cmd_arg_reader.cpp_o

q - obj/release/cutil.cpp_o

q - obj/release/stopwatch.cpp_o

q - obj/release/stopwatch_linux.cpp_o

q - obj/release/multithreading.cpp_o

q - obj/release/paramgl.cpp_o

q - obj/release/param.cpp_o

q - obj/release/rendercheck_gl.cpp_o

make -C projects/alignedTypes/ 

Undefined symbols:

  "std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<unsigned long>(unsigned long)", referenced from:

      BankChecker::~BankChecker()in libcutil.a(bank_checker.cpp_o)

      BankChecker::~BankChecker()in libcutil.a(bank_checker.cpp_o)

      BankChecker::AccessInfo::getInfo() const in libcutil.a(bank_checker.cpp_o)

      BankChecker::AccessInfo::getInfo() const in libcutil.a(bank_checker.cpp_o)

      BankChecker::AccessInfo::getInfo() const in libcutil.a(bank_checker.cpp_o)

      BankChecker::AccessInfo::getInfo() const in libcutil.a(bank_checker.cpp_o)

      BankChecker::analyse(std::_Rb_tree_const_iterator<std::pair<BankChecker::AccessLocation const, std::map<unsigned int, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> > > > > > > const&)in libcutil.a(bank_checker.cpp_o)

      BankChecker::analyse(std::_Rb_tree_const_iterator<std::pair<BankChecker::AccessLocation const, std::map<unsigned int, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> > > > > > > const&)in libcutil.a(bank_checker.cpp_o)

      BankChecker::analyse(std::_Rb_tree_const_iterator<std::pair<BankChecker::AccessLocation const, std::map<unsigned int, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> > > > > > > const&)in libcutil.a(bank_checker.cpp_o)

      BankChecker::AccessLocation::AccessLocation(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)in libcutil.a(bank_checker.cpp_o)

      BankChecker::AccessLocation::AccessLocation(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)in libcutil.a(bank_checker.cpp_o)

  "std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, int)", referenced from:

      BankChecker::~BankChecker()in libcutil.a(bank_checker.cpp_o)

      BankChecker::~BankChecker()in libcutil.a(bank_checker.cpp_o)

      BankChecker::AccessInfo::getInfo() const in libcutil.a(bank_checker.cpp_o)

      BankChecker::AccessInfo::getInfo() const in libcutil.a(bank_checker.cpp_o)

      BankChecker::AccessInfo::getInfo() const in libcutil.a(bank_checker.cpp_o)

      BankChecker::AccessInfo::getInfo() const in libcutil.a(bank_checker.cpp_o)

      BankChecker::analyse(std::_Rb_tree_const_iterator<std::pair<BankChecker::AccessLocation const, std::map<unsigned int, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> > > > > > > const&)in libcutil.a(bank_checker.cpp_o)

      BankChecker::analyse(std::_Rb_tree_const_iterator<std::pair<BankChecker::AccessLocation const, std::map<unsigned int, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> > > > > > > const&)in libcutil.a(bank_checker.cpp_o)

      BankChecker::analyse(std::_Rb_tree_const_iterator<std::pair<BankChecker::AccessLocation const, std::map<unsigned int, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> > > > > > > const&)in libcutil.a(bank_checker.cpp_o)

      BankChecker::analyse(std::_Rb_tree_const_iterator<std::pair<BankChecker::AccessLocation const, std::map<unsigned int, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> > > > > > > const&)in libcutil.a(bank_checker.cpp_o)

      BankChecker::analyse(std::_Rb_tree_const_iterator<std::pair<BankChecker::AccessLocation const, std::map<unsigned int, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> > > > > > > const&)in libcutil.a(bank_checker.cpp_o)

      BankChecker::analyse(std::_Rb_tree_const_iterator<std::pair<BankChecker::AccessLocation const, std::map<unsigned int, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> > > > > > > const&)in libcutil.a(bank_checker.cpp_o)

      BankChecker::analyse(std::_Rb_tree_const_iterator<std::pair<BankChecker::AccessLocation const, std::map<unsigned int, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> > > > > > > const&)in libcutil.a(bank_checker.cpp_o)

      BankChecker::analyse(std::_Rb_tree_const_iterator<std::pair<BankChecker::AccessLocation const, std::map<unsigned int, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> > > > > > > const&)in libcutil.a(bank_checker.cpp_o)

      BankChecker::analyse(std::_Rb_tree_const_iterator<std::pair<BankChecker::AccessLocation const, std::map<unsigned int, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::vector<BankChecker::AccessInfo, std::allocator<BankChecker::AccessInfo> > > > > > > const&)in libcutil.a(bank_checker.cpp_o)

      BankChecker::AccessLocation::AccessLocation(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)in libcutil.a(bank_checker.cpp_o)

      BankChecker::AccessLocation::AccessLocation(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)in libcutil.a(bank_checker.cpp_o)

      BankChecker::AccessLocation::AccessLocation(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)in libcutil.a(bank_checker.cpp_o)

ld: symbol(s) not found

collect2: ld returned 1 exit status

make[1]: *** [../../bin/darwin/release/alignedTypes] Error 1

make: *** [projects/alignedTypes/Makefile.ph_build] Error 2

What is the problem here?

I’m seeing the exact same problem; not sure what the cause is yet, as I’ve built the examples successfully on an ostensibly identical MacBook Pro . . . there must be some difference in environment/compiler/etc., however. I’ll let you know if I find anything useful.

I ended up reinstalling the OS for other reasons and the examples compile fine now. So I must have messed up something with the compiler/environment/etc.