当我在编译后运行我的程序时,会出现以下错误:
./prog:/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version
CXXABI_1.3.8' not found (required by ./prog) ./prog:/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version
GLIBCXX_3.4.19' not found (required by ./prog) ./prog:/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/arman/lib/boost_1_55_0/stage/lib/libboost_serialization.so.1.55.0)
我在 ~/lib/boost_1_55_0
和 ~/lib/gcc-4.9.0
中分别安装了 boost 1.55.0 和 gcc 4.9.0,我猜这就是我遇到问题的原因,但我不知道该如何解决。
我的 ~/.profile
包含以下一行:
export LD_LIBRARY_PATH=/home/user/lib/boost_1_55_0/stage/lib:$LD_LIBRARY_PATH
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´ 或类似目录)。