我最近请求帮助/sf/ask/17360801/ -8它被投票和关闭(我不知道为什么)
事实证明,"make install" - 安装并暗示目标"install-target-libstdc ++ v3"的make目标实际上并不意味着你已经准备好了.
我已经被困了一段时间,想知道我做错了什么,因为我认为这样的制作目标会为我做那件事.
我希望这个答案能帮助至少一个人.
当我尝试安装TopTracker时,我在Ubuntu 14.04上遇到了同样的问题.我有这样的错误:
/ usr/share/toptracker/bin/TopTracker:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:找不到版本'CXXABI_1.3.8'(/ usr/share/toptracker/bin/TopTracker需要)/usr/share/toptracker/bin/TopTracker:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:未找到版本'GLIBCXX_3.4.21'(/ usr/share/toptracker/bin/TopTracker需要)/usr/share/toptracker/bin/TopTracker:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:找不到版本'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
对于遇到类似问题的所有人,请运行以下命令:
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!另外"如果您碰巧想要链接已安装的库" - 严重吗?
我在这里有正确的解决方案.
正确安装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存储库并只使用/usr/bin/gcc-4.9-base,但我更喜欢使用新的更新工具链.