系统libstdc++库版本过低导致符号未定义或运行结果错误

错误信息

无法找到高版本C++标准库函数定义的接口:

1
undefined reference to `std::xxx` 

问题介绍

Clang默认使用系统路径下的libstc++.so动态库,过低的系统libstdc++.so库版本可能不支持用户代码中使用的高版本特性,导致链接时出现未定义符号或运行结果错误。

解决方案

链接时加入-stdlib=libc++或-lc++选项,使用Clang提供的libc++.so库中提供的标准C++库实现。