2

我开发了一个在 Debian 下编译的 CGI C++ 应用程序。在 Ubuntu 系统上运行此应用程序出现错误:

重定位错误:/lib32/libresolv.so.2:符号 strlen,版本 GLIBC_2.0 未在带有链接时间参考的文件 libc.so.6 中定义

我现在能做什么?我应该在 Ubunto 系统上重新编译吗?我可以更换图书馆吗?

编辑

我将我的应用程序与-static.
在 Ubuntu 系统上运行命令ldd --version显示了我在EGLIB那里使用的命令。

4

1 回答 1

3

此错误意味着您的程序是针对旧版本的 GNU libc 编译/链接的,您要运行可执行文件的系统不支持该版本。

你有几个选择来解决它:

  1. 确保在编译和运行时使用相同或兼容版本的 libc。
  2. 链接到静态运行时。
  3. 在 Ubuntu 系统上安装旧版本的 libc 以匹配 Debian 的环境。
于 2012-05-31T12:32:54.100 回答