If I compile a C++ program on my machine, and run it on another one (with older software) I get:
/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found
strings /usr/lib/libstdc++.so.6 | grep GLIBCXX
readelf -a and
objdump -x to inspect ELF files in preference to
Actually, all the GLIBCXX_* versions don't apply to the entire library, but to each symbol (symbol versioning, see DSO-howto). So you can have e.g:
std::ios_base::Init::~Init()@@GLIBCXX_3.4 on the same library file.
The fact that your program needs GLIBCXX_3.4.9 probably means that it has been linked against a symbol that has been introduced/has changed semantics on GLIBCXX_3.4.9.