当我在编译后运行程序时,出现以下错误:
./ 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.0)
我分别在~/lib/boost_1_55_0
和~/lib/gcc-4.9.0
安装了1.55.0和gcc 4.9.0,我猜这就是我遇到问题的原因,但我不确定如何解决它。
我的~/.profile
包含以下行:
export LD_LIBRARY_PATH = / home / user / lib / boost_1_55_0 / stage / lib:$ LD_LIBRARY_PATH
答案 0 :(得分:38)
GCC 4.9引入了比你的系统libstdc ++更新的C ++ ABI版本,因此你需要通过将该路径添加到LD_LIBRARY_PATH
来告诉加载器使用这个更新版本的库。不幸的是,我不能直接告诉你libstdc ++对于你的GCC 4.9安装的位置,因为这取决于你如何配置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'或类似)。