54

当我在编译后运行我的程序时,我收到以下错误:

./prog: /usr/lib/x86_64-linux-gnu/libstdc++.so.6:CXXABI_1.3.8' not found (required by ./prog) ./prog: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version找不到版本 GLIBCXX_3.4.19'(./prog 需要)./prog: /usr/lib/x86_64-linux-gnu/ libstdc++.so.6:未找到版本“GLIBCXX_3.4.20”(/home/arman/lib/boost_1_55_0/stage/lib/libboost_serialization.so.1.55.0 需要)

我分别安装了 boost 1.55.0 和 gcc 4.9.0 ~/lib/boost_1_55_0~/lib/gcc-4.9.0我猜这就是我遇到问题的原因,但我不确定如何修复它。

my~/.profile包含以下行:

导出 LD_LIBRARY_PATH=/home/user/lib/boost_1_55_0/stage/lib:$LD_LIBRARY_PATH

4

1 回答 1

45

GCC 4.9 引入了比系统 libstdc++ 更新的 C++ ABI 版本,因此您需要通过将路径添加到LD_LIBRARY_PATH. 不幸的是,我不能直接告诉你 GCC 4.9 安装的 libstdc++ 的位置,因为这取决于你如何配置 GCC。所以你需要以下风格的东西:

export LD_LIBRARY_PATH=/home/user/lib/gcc-4.9.0/lib:/home/user/lib/boost_1_55_0/stage/lib:$LD_LIBRARY_PATH

请注意,实际路径可能不同(那里可能隐藏了一些子目录,例如 `x86_64-unknown-linux-gnu/4.9.0´ 或类似的)。

于 2014-05-06T12:37:49.137 回答