当我将程序和它需要的一些库复制到另一台机器时,当我在程序上运行 LDD 时,我得到“没有可用的版本信息”。
我知道为什么会发生这种情况,我只是想知道这是否有什么大不了的。我可以忽略它吗?该程序似乎正在执行并表现出预期的行为。这会不会在未来再次困扰我?
答案1
来自glibc 源代码为了ldd
if (...) {
/* The file has no symbol versioning. I.e., the dependent
object was linked against another version of this file. We
only print a message if verbose output is requested. */
...
errstring = make_string ("no version information available ...");
...
}
它的意思是“版本不匹配”,包括不匹配为null。不多也不少。它会回来搞砸你吗?不幸的是,答案必须是:“可能”。如果没有它正在寻找的版本,它可能会出现错误。当然,即使它说一切都很好,它也可能有问题。
你应该担心吗?如果这是一个大型进程所依赖的生产系统,那么从其他系统复制二进制文件可能不是一个好主意。如果这只是为了你,或者只是为了让事情顺利进行,这样你就可以解决真正的问题,向前和向上。