C++ has two common standard-library implementations, GNU's libstdc++ and
LLVM's libc++. They implement the same language standard, so C++ source is
portable between them, but the compiled binaries are not interchangeable: a
.so/binary built against one cannot be satisfied by the other. This ~20-line
demo proves it, and shows why (different symbol names for the same type).
This is the class of failure you hit when a program built with libc++ links or loads a library built with libstdc++ (for example a vendor prebuilt like