我正在虚拟机中构建一个程序,然后将其部署到另一台机器。这已经运行了一段时间。
今天,当我尝试执行我的程序时,我开始收到此错误消息:
/usr/lib/i386-linux-gnu/libstdc++.so.6: 未找到版本‘GLIBCXX_3.4.19’
两台机器都运行相同的内核版本,并且所有软件包都是最新的:
$ uname -a
Linux darwin7 3.8.0-23-generic #34-Ubuntu SMP Wed May 29 20:24:54 UTC 2013 i686 i686 i686 GNU/Linux
我该如何调查并修复此问题?
答案1
更轻量级的解决方案是仅安装 libstdc++从非违约存储库:
$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test
$ sudo apt-get update
$ sudo apt-get install libstdc++6-4.7-dev
答案2
最后我意识到我在两台机器上安装了不同版本的 gcc (g++)。我使用 4.8 进行构建,并在只有 4.7 可用的地方运行。在目标机器上安装 4.8(如所述这里) 解决了该问题。
可能存在更轻量级的解决方案,它不需要安装完整的编译器,而只需要安装所需的库。