我有一个通过 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)
我猜这些依赖项丢失了?我不知道在哪里可以找到它们。谷歌搜索他们并没有让我找到任何有用的东西,我试过搜索我自己的电脑但没有运气。
您刚刚发现了为什么需要为不同风格甚至版本的 Linux 重新构建应用程序。有些可能在其他各种发行版上运行,但不能保证。
通常,在您想要运行它的机器上(或至少在具有相同发行版的机器上)构建您的应用程序。或者,更好的是,构建软件包(.deb 用于 Ubuntu / Debian,.rpm 用于 SUSE / Red Hat / Fedora / CentOS)以自动化该过程并确保自动处理依赖项(如那些共享库)。
不,这不是一件容易的事,但这是一件必要的事情。