我在运行程序时遇到了这个问题,gdb提示了这个错误, 网上搜了一遍,发现是了原因
gcc5.4中C++11对一些变量的解析不太一样(表达不太好),比如,f std::list<int>被定义为了std::__cxx11::list<int>,所以会出现未定义引用的错误,。
解决办法禁用C++11的相关特性,方法如下:
我使用的是在编译选项中预定义宏。
方法很简单,直接在Makefile选项中添加-D_GLIBCXX_USE_CXX11_ABI=0
gcc -std=c11 -D_GLIBCXX_USE_CXX11_ABI=0
网友评论