undefined reference to ...... @GLIBCXX

最近在用CMake编译一个C++的Web框架WT时,遇到类似如下报错:

undefined reference to `__cxx11_std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)@GLIBCXX_3.4.21'

undefined reference to `__cxx11_std::__detail::_List_node_base::_M_unhook()@GLIBCXX_3.4.21‘

undefined reference to `__cxx11_std::__detail::_List_node_base::_M_transfer(std::__detail::_List_node_base*, std::__detail::_List_node_base*)@GLIBCXX_3.4.21'

In function `boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::assign(char const*, char const*, unsigned int)':

: undefined reference to `__cxx11_boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::do_assign(char const*, char const*, unsigned int)'

collect2: ld returned 1 exit status

按照网上的做法:升级glibc++库,重新做好软连接,之后还是不行,最终发现问题:

1、我的Gcc之前用的是CentOS自带的版本,我升级成了支持C++11的Gcc5.1;

2、虽然用gcc -v显示的版本没问题,但是没有把之前的Gcc4.3清除干净;

3、安装Cmake和boost1.58时,可能系统自动使用了不同的gcc版本;

把老版本的Gcc4.3完全干掉后,重装Cmake和boost,编译通过。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值