加载共享库时出错,文件太短。

从我的一个客户那里收到了一个应用程序。当我尝试运行它时,出现了以下错误。
error while loading shared libraries: ./libvtkWidgets.so.5.4: file too short

在我的项目结构中,我看到以下内容:
-rwxrwxrwx  1 tomasz tomasz       20 2011-02-01 10:44 libvtkWidgets.so
-rwxrwxrwx  1 tomasz tomasz       22 2011-02-01 10:44 libvtkWidgets.so.5.4
-rwxrwxrwx  1 tomasz tomasz  2147103 2011-02-01 10:44 libvtkWidgets.so.5.4.2

我的共享库libvtkWidgets是否已损坏?如何解决这个错误?

运行sudo ldconfig会给你一个确切的问题("文件***为空,未经检查。"或"***不是一个符号链接")。 - Yan Foto
1这种情况发生在我使用7-Zip解压缩存档时。使用tar命令解决了这个问题,详情请参考这里 - Matthias Braun
1个回答

可能在复制/提取库时出现了错误。 libvtkWidgets.so和libvtkWidgets.so.5.4不应该是文件,而应该是符号链接。 请尝试以下操作:
rm libvtkWidgets.so.5.4 libvtkWidgets.so
ln -s libvtkWidgets.so.5.4.2 libvtkWidgets.so.5.4
ln -s libvtkWidgets.so.5.4 libvtkWidgets.so

不管怎样,你应该检查一下你正在安装的软件是否在软件中心可用。 如果不可用,而且上述解决方法不起作用的话,你将需要联系应用程序提供商。

3非常感谢,我在Windows上提取文件并将提取的文件复制到我的Ubuntu虚拟机时犯了一个错误。这就是为什么所有符号链接都消失了的原因。 - tommyk
我正在创建自己的C++扩展,即使将其设置为符号链接,问题仍然存在。有没有我不知道的缓存? - noɥʇʎԀʎzɐɹƆ
在这里也是一样的,@tommyk。我用7zip在Windows上解压缩,然后尝试在我的WSL实例中使用Hadoop文件。 - forgetso