CLion调用eigen库进行矩阵运算并输出的时候,出现/libstdc++.so.6: version `GLIBCXX_3.4.26’ not found错误。
一、报错信息
1)程序
#include <iostream>
#include <Eigen/Dense>
using Eigen::MatrixXd;
int main()
{
MatrixXd m(2,2);
m(0,0) = 3;
m(1,0) = 2.5;
m(0,1) = -1;
m(1,1) = m(1,0) + m(0,1);
std::cout << m << std::endl;
}
2)现象
当执行语句std::cout << m << std::endl;
时候,出现/libstdc++.so.6: version `GLIBCXX_3.4.26’ not found错误。具体报错为:
/home/XXX/CLionProjects/test_project/cmake-build-debug/test_project: /usr/local/MATLAB/MATLAB_Runtime/v910/sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.26’ not found (required by /home/zzw/CLionProjects/test_project/cmake-build-debug/test_project)
二、解决方案
参考:https://blog.csdn.net/qq_39618369/article/details/123047095
这种情况说明libstdc++.so.6连接的版本不够高,需要安装libstdc.so_.6.0.26,并建立新的软链接。
1)下载,并解压缩
wget http://www.vuln.cn/wp-content/uploads/2019/08/libstdc.so_.6.0.26.zip
unzip libstdc.so_.6.0.26.zip
2)将库文件复制到报错路径
cp ./libstdc++.so.6.0.26 XXXX(你的报错路径)
3)进入报错路径,删除并建立软链接
#进入报错路径
cd XXXX
rm -f libstdc++.so.6 (最好先备份)
ln -s libstdc.so_.6.0.26 libstdc++.so.6
三、环境检测
可以用以下命令查看是否修改成功:
strings XXX(你的路径)/libstdc++.so.6 | grep GLIBC