的安装新构建机器之后,我发现它来与C++标准库链接使用较早版本的libstdC++
-rw-r--r-- 1 root root 1019216 2009-01-02 12:15 libstdc++.so.6.0.10
我们的许多目标机器的6.0.10,但是,仍然使用旧版本的libstdC++,例如:
-rwxr-xr-x 1 root root 985888 Aug 19 21:14 libstdc++.so.6.0.8
显然,ABI在最后两0.0.1的改变,如试图在
/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found
运行程序结果
我试着明确安装一个旧版本的gcc,但没有帮助。 升级目标机器超出了我的控制范围,所以不是一个选项。让我的构建能够在具有较旧libstdC++的机器上工作的最佳方式是什么?
我在apt-cache中搜索了较旧的libstdC++版本进行安装,但显然没有旧版本的6可用?
你的意思是我们必须安装一个旧版本的g ++吗? – 2011-07-08 03:49:51
@Peter是的,拿G ++链接到旧版本的libstdC++的旧版本。所以 – Jan 2011-07-08 11:50:44
我觉得这是很蹩脚的,为了使用C++库的旧版本,你不得不忍受这可能有缺陷,编译器和失踪优化 - 尤其是因为其他方式轮(使用旧的编译器,一个新版本的库)似乎只是一个设定'LD_LIBRARY_PATH'的问题。 – 2013-09-25 12:42:02