【问题标题】:Error due to libstdc++由于 libstdc++ 导致的错误
【发布时间】:2013-07-09 11:07:49
【问题描述】:

我在 Fedora13 操作系统上编写了一个简单的“Hello World”C++ 程序,它可以在 Fedora 13 上正常运行。 但是当我尝试在 Suse7.3 上运行相同的二进制文件时,它给出了错误:

Inconsistency detected by ld.so: dynamic-link.h: 62: elf_get_dynamic_info: Assertion ! "bad dynamic tag"' failed!

之后我在 Suse7.3 上编译了相同的代码并在 Fedora13 上运行了一个二进制文件然后它给出了错误:

./a.out: symbol lookup error: ./a.out: undefined symbol: cout

由于libstdc++ 库而出现此问题。

Fedora 13 有 libstdc++.so.6.0.13 库。

Suse7.3 有libstdc++-3-libc6.2-2-2.10.0.so 库。

如何创建适用于 Suse7.3 和 Fedora13 的二进制文件?

【问题讨论】:

  • Suse 版本很古老,这基本上是它不起作用的原因。我会去更新而不是一起破解一些东西(即你可以静态链接 libstdc++ ...)

标签: c++ linux libstdc++


【解决方案1】:

您不太可能构建可以在两者上运行的二进制文件。

如果您别无选择,只能尝试,您需要查找旧库的软件包并将它们安装在您的 Fedora 系统上。我什至不会考虑走另一条路。

您需要进行大量下载和安装包,因此请预留几个小时来完成这项任务以及您将经常遇到的挫败感。

最好在每个系统上编译一个可执行文件版本

【讨论】:

  • @trojanfoe 确实,看看 -static -static-libgcc -static-libstdc++
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-09
  • 2018-01-02
  • 2014-04-17
相关资源
最近更新 更多