我在编译ligra是遇到了这个问题,网上搜了一遍,发现是了缘由https://gcc.gnu.org/onlinedocs/libstdc%2B%2B/manual/using_dual_abi.htmlhtml
gcc5.4中C++11对一些变量的解析不太同样(表达不太好),好比,f std::list<int>
被定义为了std::__cxx11::list<int>
,因此会出现未定义引用的错误,。spa
解决办法禁用C++11的相关特性,方法以下:https://blog.csdn.net/ufolr/article/details/52669333.net
我使用的是在编译选项中预约义宏。code
方法很简单,直接在Makefile选项中添加-D_GLIBCXX_USE_CXX11_ABI=0
htm
gcc -std=c14 -D_GLIBCXX_USE_CXX11_ABI=0
........blog