1
use Image::Imlib2;
my $a = Image::Imlib2->load("/foo/file");

给我以下错误:

Runtime error: Image::Imlib2 load error: File does not exist at (eval 469) line 6.

请注意,/foo/file 是 CIFS 挂载目录,这只发生在 CIFS 挂载目录上的文件中。另一个复杂情况是,这发生在 Debian Squeeze 上,而不是 Debian Lenny。

4

1 回答 1

1

解决方案是使用“noserverino”选项挂载 CIFS 目录。

Image::Imlib2 是 Imlib2 C 库的 Perl 包装器。问题是 CIFS 服务器可以返回大于 31^2 的 inode 整数值。这会使未使用 LFS(大文件支持)编译的程序引发 glibc EOVERFLOW 错误。使用 LFS 支持编译程序(即使用 -D_FILE_OFFSET_BITS=64)或使用“noserverino”挂载选项。但是您可能无法正确检测硬链接。

http://linux.die.net/man/8/mount.cifs

于 2012-07-06T14:22:27.600 回答