Har*_*ith 7 c unix linux glibc libc
我们正在构建一个针对 Ubuntu 18.04 LTS 和所有更高版本的 GTK3 应用程序。但是,当我们在 Ubuntu 20.04 版本中构建应用程序时,该应用程序无法在较旧的 Ubuntu 版本上运行。它说
libc.so.6:找不到版本“GLIBC_2.31”(.source 需要)
但如果我在 Ubuntu 18.04 上构建一个应用程序,它将适用于所有后续的 Ubuntu 版本。Ubuntu 18.04 默认情况下有 GLIBC 版本 2.27,该版本适用于所有后续版本。
那么有什么方法可以告诉我的应用程序,该应用程序是使用 GLIBC 2.27 构建的,无论构建该应用程序的操作系统是什么版本?有什么方法可以在构建过程中将 GLIBC 版本的信息提供给应用程序吗?
如何告诉可执行文件链接到特定版本的 GLIBC
你不能。
Antonio Petricca(以及其他地方)提供的 hack 可能会引入非常微妙的错误,并且是不明智的。
解决此问题的正确方法是针对您需要运行的最小版本的 GLIBC 执行编译和链接。这可以通过
chroot环境中