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 サーバーが inode 整数値 > 31^2 を返す可能性があることです。これにより、LFS (Large File Support) でコンパイルされていないプログラムが作成され、glibc EOVERFLOW エラーがスローされます。プログラムを LFS サポート (つまり、-D_FILE_OFFSET_BITS=64) でコンパイルするか、「noserverino」マウント オプションを使用します。ただし、ハードリンクを正しく検出できない場合があります。

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

于 2012-07-06T14:22:27.600 に答える