我最近请求帮助https://stackoverflow.com/questions/20253515/no-idea-as-to-usr-lib-x86-64-linux-gnu-libstdc-so-6-version-cxxabi-1-3-8并且它被关闭并关闭(我不知道为什么)
事实证明" make install" - 安装并暗示目标的make目标" install-target-libstdc ++ v3"并不意味着你准备好了。
我已经被困了一段时间,想知道我做错了什么,因为我认为这样的制作目标会为我做那件事。
我希望这个答案能帮助至少一个人。
答案 0 :(得分:38)
对于遇到类似问题的所有人,请运行以下命令:
LD_LIBRARY_PATH=/usr/local/lib64/:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
当你编译和安装GCC时,它确实将库放在这里,但就是这样。正如常见问题解答所说(http://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.how_to_set_paths),您需要添加它。
我假设“我如何确保找到动态链接的库?”意味着“如何确保始终找到它”而不是“它不会被发现,你需要这样做”
对于那些不打扰设置前缀的人,它是/ usr / local / lib64
如果您阅读make输出,则可以在安装gcc时简要提及:
Libraries have been installed in:
/usr/local/lib/../lib32
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
Grr很简单!另外“如果您碰巧想要链接已安装的库” - 严重吗?
答案 1 :(得分:19)
当我尝试安装TopTracker时,我在Ubuntu 14.04上遇到了同样的问题。我有这样的错误:
的/ usr /共享/ toptracker / bin中/ TopTracker: /usr/lib/x86_64-linux-gnu/libstdc++.so.6:版本' CXXABI_1.3.8'不 发现(需要/ usr / share / toptracker / bin / TopTracker) 在/ usr /共享/ toptracker /斌/ TopTracker: /usr/lib/x86_64-linux-gnu/libstdc++.so.6:version' GLIBCXX_3.4.21'不 发现(需要/ usr / share / toptracker / bin / TopTracker) 在/ usr /共享/ toptracker /斌/ TopTracker: /usr/lib/x86_64-linux-gnu/libstdc++.so.6:version' CXXABI_1.3.9'不 发现(需要/ usr / share / toptracker / bin / TopTracker)
但是我安装了gcc 4.9版本并且问题消失了:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9 g++-4.9
答案 2 :(得分:6)
我得到了正确的解决方案here。
正确安装gcc-4.9并将其设置为默认gcc版本的最佳方法使用:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9 g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9
使用g ++的--slave将导致g ++与gcc一起切换到相同的版本。但是,此时gcc-4.9将是您在更新替代品中配置的唯一版本,因此将4.8添加到更新替代品中,因此实际上有一个替代方案,使用:
sudo apt-get install gcc-4.8 g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
然后你可以检查设置了哪一个,然后使用:
来回切换sudo update-alternatives --config gcc
注意:您可以跳过安装PPA Repository并使用/usr/bin/gcc-4.9-base,但我更喜欢使用新的更新工具链。
答案 3 :(得分:2)
此解决方案适用于我的情况我正在使用ubuntu 16.04,VirtualBox 2.7.2和genymotion 2.7.2 在我的系统中出现了同样的错误,我遵循了简单的步骤,我的问题就解决了
1. $ LD_LIBRARY_PATH=/usr/local/lib64/:$LD_LIBRARY_PATH
2. $ export LD_LIBRARY_PATH
3. $ sudo apt-add-repository ppa:ubuntu-toolchain-r/test
4. $ sudo apt-get update
5. $ sudo apt-get install gcc-4.9 g++-4.9
我希望这对你有用
答案 4 :(得分:1)
使用gcc-4.8(CXXABI_1.3.7)在Ubuntu 14.04 64bit上安装PhantomJS时出现同样的错误
升级到gcc-4.9(CXXABI_1.3.8)解决了这个问题。如何: https://askubuntu.com/questions/466651/how-do-i-use-the-latest-gcc-4-9-on-ubuntu-14-04
答案 5 :(得分:1)
其他答案建议适用于相关计划, 但它有可能导致其他程序的破坏和其他地方未知的依赖。制作一个小包装脚本会更好:
#!/bin/sh
export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH
program_needing_different_run_time_library_path
这主要通过将效果限制在需要它们的程序来避免Why LD_LIBRARY_PATH is bad中描述的问题。
请注意,尽管名称LD_RUN_PATH在链接时工作且非邪恶,但LD_LIBRARY_PATH在链接和运行时都起作用(并且 邪恶:)。
答案 6 :(得分:1)
在我的情况下,这是失踪的gcc 6
sudo apt-get install gcc-6 g++-6 -y
答案 7 :(得分:0)
我试图在python中导入fst时,在我的Ubuntu-64系统上遇到了这个问题:
Python 3.4.3 |Continuum Analytics, Inc.| (default, Jun 4 2015, 15:29:08)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import fst
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/ogi/miniconda3/lib/python3.4/site-packages/pyfst-0.2.3.dev0-py3.4-linux-x86_64.egg/fst/__init__.py", line 1, in <module>
from fst._fst import EPSILON, EPSILON_ID, SymbolTable,\
ImportError: /home/ogi/miniconda3/lib/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /usr/local/lib/libfst.so.1)
然后我跑了:
ogi@ubuntu:~/miniconda3/lib$ find ~/ -name "libstdc++.so.6"
/home/ogi/miniconda3/lib/libstdc++.so.6
/home/ogi/miniconda3/pkgs/libgcc-5-5.2.0-2/lib/libstdc++.so.6
/home/ogi/miniconda3/pkgs/libgcc-4.8.5-1/lib/libstdc++.so.6
find: `/home/ogi/.local/share/jupyter/runtime': Permission denied
ogi@ubuntu:~/miniconda3/lib$
mv /home/ogi/miniconda3/lib/libstdc++.so.6 /home/ogi/miniconda3/libstdc++.so.6.old
cp /home/ogi/miniconda3/libgcc-5-5.2.0-2/lib/libstdc++.so.6 /home/ogi/miniconda3/lib/
然后我可以加载库
ogi@ubuntu:~/miniconda3/lib$ python
Python 3.4.3 |Continuum Analytics, Inc.| (default, Jun 4 2015, 15:29:08)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import fst
>>> exit()