缺少 libm.so.6 和 libstdc++.so.6

缺少 libm.so.6 和 libstdc++.so.6

我有一个通过 qt creator 编译的程序,它在我的计算机上似乎运行良好,但我试图在远程计算机集群上运行它,它却吐出了这些错误消息。

./programs/sampleapp: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by ./programs/sampleapp)
./programs/sampleapp: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by ./programs/sampleapp)
./programs/sampleapp: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./programs/sampleapp)

我猜这些依赖项丢失了?我不知道在哪里可以找到它们。在 Google 上搜索它们没有找到任何有用的信息,我尝试在自己的电脑上搜索,但毫无收获。

答案1

您刚刚发现了为什么需要为不同版本甚至不同版本的 Linux 重新构建应用程序。有些应用程序可能可以在其他发行版上运行,但并不能保证。

一般来说,在你想要运行应用程序的机器上(或者至少在具有相同发行版的机器上)构建应用程序。或者更好的是,构建软件(Ubuntu / Debian 为 .deb,SUSE / Red Hat / Fedora / CentOS 为 .rpm)自动化该过程并确保依赖项(如那些共享库)被自动处理。

不,这不是一件容易的事,但却是一件必要的事。

相关内容