我在編譯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