c++flit decodes(demangles) low-level names into user-level names so that the linker can keep these overloaded functions from clashing.

You may use c++filt to demangle the symbols.
[sourcecode language="text"]
$ c++filt _ZNSt8ios_base4InitD1Ev
std::ios_base::Init::~Init()
[/sourcecode]

You may try adding-lstdc++ to your link command to resolve the issue.

c++filt manual