2013-04-03 75 views
1

有誰知道下面的錯誤的原因:圖片:: Magick ::常量沒有定義

Image::Magick::constant not defined.
The required ImageMagick libraries are not installed or not installed properly.

我已經看到了一些與此相關的在網絡上的帖子,但沒有真正的解決方案。
我在裝有ImageMagick-6.8.4-Q16的Windows 7桌面上使用ActivePerl 5.16.3(MSWin32-x86-多線程)。
該庫似乎從包含的「Image-Magick.ppd」文件中正確安裝,DLL和支持文件安裝在預期的Perl模塊位置中。
編譯的Image :: Magick DLL是否可能與多線程版本的Perl不兼容?

+0

是否有可能你有64位Image Magick和32位Perl?我*確實在Windows 7機器上安裝了ActivePerl 5.16和Image Magick,都是64位版本。不幸的是,沒有那臺機器再爲您提供參考版本等。設置MinGW 64位以啓用編譯功能也是一件非常痛苦的事情。 –

+0

Image Magick安裝是32位版本(「ImageMagick-6.8.4-5-Q16-x86-dll.exe」)。桌面是一個32位系統,所以如果我有一個64位版本,那麼包含的「imdisplay.exe」將無法運行,並且沒有錯誤。儘管如此,包裝錯誤有時也會發生,只是在錯誤版本的「Magick.dll」包含在PPD發行版中的情況下,我確認位於「C:\ Perl \ site \ lib \ auto \ Image \ Magick \ Magick.dll「確實有一個」i386「頭(從偏移量4A開始的」01 4C「)。 –

回答

0

嗯,我真的不知道爲什麼這會解決這個問題,但我做了ImageMagick-6.8.3-Q16的回滾,修改了路徑聲明以引用舊版本的「ImageMagick-6.8.3-Q16 「並使用PPM在6.8.3目錄中重新安裝Image-Magick PPD,然後重新引導系統。

C:\Program Files\ImageMagick-6.8.3-Q16\PerlMagick>perl -v 

This is perl 5, version 16, subversion 3 (v5.16.3) built for MSWin32-x86-multi-thread 
(with 1 registered patch, see perl -V for more detail) 

Copyright 1987-2012, Larry Wall 

Binary build 1603 [296746] provided by ActiveState http://www.ActiveState.com 
Built Mar 13 2013 11:29:21 

Perl may be copied only under the terms of either the Artistic License or the 
GNU General Public License, which may be found in the Perl 5 source kit. 

Complete documentation for Perl, including FAQ lists, should be found on 
this system using "man perl" or "perldoc perl". If you have access to the 
Internet, point your browser at http://www.perl.org/, the Perl Home Page. 


C:\Program Files\ImageMagick-6.8.3-Q16\PerlMagick>ppm install Image-Magick.ppd 
Unpacking Image-Magick-6.82...done 
Generating HTML for Image-Magick-6.82...done 
Updating files in site area...done 
    2 files unchanged 
    6 files updated 

C:\Program Files\ImageMagick-6.8.3-Q16\PerlMagick> 

我的代碼現在運行時沒有「Image :: Magick :: constant not defined」錯誤。我不確定這是否表明我的桌面配置有問題,或與ActivePerl 5.16.3和ImageMagick-6.8.4-Q16有衝突,但它解決了我的問題。