2014-05-06 73 views
34

当我运行我的程序下进行编译,我得到以下错误:版本未找到(由...需要)`CXXABI_1.3.8'

./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)

我都升压1.55.0和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

+0

FAQ:http://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.how_to_set_paths –

回答

32

GCC 4.9引入了一个新的C++ ABI版本比你的系统的libstdC++了,所以你需要告诉装载机通过添加使用图书馆的这个新版本路径为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的未知-Linux的GNU/4.9.0'或类似) 。

+0

在这种情况下,它可能位于'/home/user/lib/gcc-4.9.0/lib64 ' –

+0

有关qtox的帮助(不知道为什么这个页面是修复qtox的第一次打击),请参阅https://github.com/tux3/qTox/issues/3358#issuecomment-233700842 – Ninjaxor

相关问题