当我编译后运行我的程序时,出现以下错误:
./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需要)
我同时在~/lib/boost_1_55_0
和~/lib/gcc-4.9.0
分别安装了~/lib/boost_1_55_0
和~/lib/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'或类似的)。