编译UEFI代码有下图报错,即CXXABI_1.3.9找不到
这套UEFI代码是同事在Ubuntu上编译过没有问题的,让我帮忙修改。但是问题就来了,在Centos7上编译,就报错了。
一番操作后,发现根本问题是Centos7自带的gcc版本比较低,所以编译在高gcc版本编译过的代码就有这种问题。
既然即不想改动Centos7的编译配置,那就临时整个CXXABI_1.3.9
解决方法:
1.确认虚拟机上/lib64/libstdc++.so.6的具体信息
find / -name "libstdc++.so*"
查到libstdc++.so.6在/usr/lib64目录下的libstdc++.so.6.0.19的一个软链接
2.查看版本信息,确定是没有CXXABI_1.3.9的包
3.网上下载一个libstdc++.so.6.0.26的包
4.解压后拷贝到虚拟机的/usr/lib64目录下
5.先删除/usr/lib64目录下的libstdc++.so.6,再重新连接26版本到libstdc++.so.6。再次查看版本信息就能看到有CXXABI_1.3.9的包
至此完美解决报错问题。编译完同事代码后,再将软链接指回原来的即可。