https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86590
--- Comment #39 from Jonathan Wakely <redi at gcc dot gnu.org> --- All std::string members are explicitly instantiated and exported from libstdc++.so But the definitions are also inline in the header, so are available if the compiler wants them (I have no idea what controls whether it can or will use the inline definitions).