下載與解壓縮 • 設定 • 建置 • 安裝 • Linux 特定建置指示 • Mac OS X 特定建置指示 • MinGW 特定建置指示 • 處理非預期問題
您可能不想在 Linux 或類 Linux 系統上處理進階安裝。如果是這樣,您也可以選擇安裝預先編譯的 二進制版本,或者如果您仍然想從原始碼安裝而不必大費周章,請參閱簡單的 從原始碼安裝 指示。但是,如果您想自訂 ImageMagick 在 Linux 或類 Linux 系統上的配置和安裝,讓我們開始吧。
下載與解壓縮
ImageMagick 建置在各種 Linux 和類 Linux 作業系統上,包括 Linux、Solaris、FreeBSD、Mac OS X 等。需要一個編譯器,幸運的是幾乎所有現代 Linux 系統都有一個。從 imagemagick.org 或 鏡像站 下載 ImageMagick.tar.gz 並根據其 訊息摘要 驗證發行版本。
使用以下命令解壓縮發行版本
tar xvzf ImageMagick.tar.gz
現在您已經解壓縮了 ImageMagick Linux/類 Linux 原始碼發行版本,讓我們來設定它。
設定
configure 腳本會檢查您的環境,並決定它可以組合什麼來編譯和安裝 ImageMagick 在您的系統上。這包括尋找編譯器、編譯器標頭檔的位置(例如 stdlib.h),以及 ImageMagick 是否可以使用任何委託函式庫(例如 JPEG、PNG、TIFF 等)。如果您願意接受 configure 的預設選項,並從原始碼目錄中建置,您只需輸入
$ cd ImageMagick-7.1.1-38
$ ./configure
觀察 configure 腳本輸出,以驗證它是否找到了您認為它應該找到的所有內容。請特別注意腳本輸出的最後幾行。例如,以下是我們系統最近的報告
ImageMagick is configured as follows. Please verify that this configuration matches your expectations. Host system type: x86_64-unknown-linux-gnu Build system type: x86_64-unknown-linux-gnu Option Value ------------------------------------------------------------------------------- Shared libraries --enable-shared=yes yes Static libraries --enable-static=yes yes Module support --with-modules=yes yes GNU ld --with-gnu-ld=yes yes Quantum depth --with-quantum-depth=16 16 High Dynamic Range Imagery --enable-hdri=no no Delegate Configuration: BZLIB --with-bzlib=yes yes Autotrace --with-autotrace=yes yes DJVU --with-djvu=yes no DPS --with-dps=yes no FlashPIX --with-fpx=yes no FontConfig --with-fontconfig=yes yes FreeType --with-freetype=yes yes GhostPCL None pcl6 (unknown) GhostXPS None gxps (unknown) Ghostscript None gs (8.63) result_ghostscript_font_dir='none' Ghostscript fonts --with-gs-font-dir=default Ghostscript lib --with-gslib=yes no (failed tests) Graphviz --with-gvc=yes yes JBIG --with-jbig= no JPEG v1 --with-jpeg=yes yes JPEG-2000 --with-jp2=yes yes LCMS --with-lcms=yes yes LQR --with-lqr=yes no Magick++ --with-magick-plus-plus=yes yes OpenEXR --with-openexr=yes yes PERL --with-perl=yes /usr/bin/perl PNG --with-png=yes yes RSVG --with-rsvg=yes yes TIFF --with-tiff=yes yes result_windows_font_dir='none' Windows fonts --with-windows-font-dir= WMF --with-wmf=yes yes X11 --with-x= yes XML --with-xml=yes yes ZLIB --with-zlib=yes yes X11 Configuration: X_CFLAGS = X_PRE_LIBS = -lSM -lICE X_LIBS = X_EXTRA_LIBS = Options used to compile and link: PREFIX = /usr/local EXEC-PREFIX = /usr/local VERSION = 6.4.8 CC = gcc -std=gnu99 CFLAGS = -fopenmp -g -O2 -Wall -W -pthread MAGICK_CFLAGS = -fopenmp -g -O2 -Wall -W -pthread CPPFLAGS = -I/usr/local/include/ImageMagick PCFLAGS = -fopenmp DEFS = -DHAVE_CONFIG_H LDFLAGS = -lfreetype MAGICK_LDFLAGS = -L/usr/local/lib -lfreetype LIBS = -lMagickCore-Q16 -llcms -ltiff -lfreetype -ljpeg -lfontconfig -lXext -lSM -lICE -lX11 -lXt -lbz2 -lz -lm -lgomp -lpthread -lltdl CXX = g++ CXXFLAGS = -g -O2 -Wall -W -pthread
您可以透過在 configure 命令列中設定變數的初始值來影響 configure 腳本的編譯器、編譯旗標或函式庫的選擇。其中包括
- CC
- 要使用的 C 編譯器名稱(例如 cc -Xa)。
- CXX
- 要使用的 C++ 編譯器名稱(例如 CC)。
- CFLAGS
- 用於編譯 C 程式碼的編譯器旗標(例如 -g -O2)。
- CXXFLAGS
- 用於編譯 C++ 程式碼的編譯器旗標(例如 -g -O2)。
- CPPFLAGS
- 用於尋找標頭檔的 Include 路徑(例如 -I/usr/local)。
- LDFLAGS
- 用於尋找函式庫的函式庫路徑(例如 -L/usr/local)支援函式庫執行路徑概念的系統可能需要額外的參數才能在執行時找到共用函式庫。例如,Solaris 連結器需要 -R/path 形式的參數。某些 Linux 系統可以使用 -rpath /usr/local/lib,而其他一些 gcc 不會將 -rpath 傳遞給連結器的 Linux 系統則需要 -Wl,-rpath,/usr/local/lib 形式的參數。
- LIBS
- 連結所需的額外函式庫(例如 -l/usr/local/lib)。
以下是如何從命令列設定 configure 變數的範例
configure CC=c99 CFLAGS=-O2 LDFLAGS='-L/usr/local/lib -R/usr/local/lib' LIBS=-lposix
任何需要目錄路徑的變數(例如 CPPFLAGS 或 LDFLAGS)都必須指定絕對路徑而不是相對路徑。
Configure 通常可以自動找到 X Include 檔和函式庫檔,但如果找不到,您可以使用 --x-includes=path 和 --x-libraries=path 選項來指定它們的位置。
configure 腳本提供了一些 ImageMagick 特定的選項。停用選項時,--disable-something 等同於指定 --enable-something=no,而 --without-something 等同於 --with-something=no。以下是 configure 選項(執行 configure --help 可以查看所有選項)。
ImageMagick 選項表示要啟用或停用的功能,或要包含在建置中的套件。啟用某個功能(透過 --enable-something)時,會啟用 ImageMagick 中已有的程式碼。啟用某個套件(透過 --with-something)時,configure 腳本會搜尋該套件,如果已正確安裝並可供使用(編譯器找到標頭檔和已建置的程式庫),則會將其包含在建置中。configure 腳本預設會停用所有功能並啟用所有套件。一般來說,停用套件的唯一原因是,如果套件存在但它不適合建置(可能是舊版本或未以正確的編譯旗標編譯)。
以下是您可以配置的選用功能
--enable-shared | 建置共用程式庫和載入編解碼器和處理模組的支援。共用程式庫是較好的選擇,因為它們允許程式共用通用程式碼,從而使各個程式更小。此外,為了讓 PerlMagick 由已安裝的 PERL 動態載入,需要共用程式庫(否則必須安裝額外的 PERL (PerlMagick))。 使用委託建置的 ImageMagick(請參閱下方的 MAGICK 外掛)可能會帶來額外的挑戰。如果 ImageMagick 使用靜態程式庫(預設不含 --enable-shared)建置,則委託程式庫可以建置為靜態程式庫或共用程式庫。但是,如果 ImageMagick 使用共用程式庫建置,則所有委託程式庫也必須建置為共用程式庫。靜態程式庫通常具有副檔名 .a,而共用程式庫通常具有 .so、.sa 或 .dll 等副檔名。共用程式庫中的程式碼通常必須使用特殊的編譯器選項進行編譯,以產生位置無關程式碼 (PIC)。唯一不需要這樣做的情況是,平台預設將程式碼編譯為 PIC。 PIC 編譯旗標因供應商而異(gcc 的是 -fPIC)。但是,您必須使用相同的旗標編譯所有共用程式庫原始碼(對於 gcc,請使用 -fPIC 而不是 -fpic)。雖然靜態程式庫通常使用 ar 等封存工具建立,但共用程式庫是使用特殊的連結器或編譯器選項(例如 gcc 的 -shared)建置的。 如果未指定 --enable-shared,則會建置一個新的 PERL 直譯器 (PerlMagick),該直譯器靜態連結到 PerlMagick 副檔名。這個新的直譯器會安裝到與 ImageMagick 工具程式相同的目錄中。如果指定了 --enable-shared,則會將 PerlMagick 副檔名建置為動態可載入物件,並在執行時載入到目前的 PERL 直譯器中。使用動態載入的副檔名比靜態連結的副檔名更可取,因此如果可能,請使用 --enable-shared(請注意,與 ImageMagick 一起使用的所有程式庫都必須是共用程式庫!)。 |
--disable-static | 不建置靜態封存程式庫(副檔名為 .a)。如果您要建置共用程式庫,則建置靜態程式庫的價值不大。建置靜態程式庫的原因包括:1) 它們更容易除錯;2) 用戶端沒有外部相依性(即 libMagick.so);3) 建置委託程式庫的 PIC 版本可能需要額外的專業知識和努力;4) 您無法建置共用程式庫。 |
--disable-installed | 停用建置已安裝的 ImageMagick(預設啟用)。 預設情況下,ImageMagick 建置會配置為正式安裝到目錄樹中。這是安裝 ImageMagick 最安全可靠的方法。使用此選項配置 ImageMagick,使其不使用硬編碼的路徑,而是通過計算可執行文件(或 MAGICK_HOME 環境變數指定的位置)的偏移路徑來定位支援文件。未安裝的配置非常適合預計在任何位置解壓縮和執行的二進制發行版。 |
--enable-ccmalloc | 啟用「ccmalloc」記憶體除錯支援(預設為停用)。 |
--enable-prof | 啟用「prof」效能分析支援(預設為停用)。 |
--enable-gprof | 啟用「gprof」效能分析支援(預設為停用)。 |
--enable-gcov | 啟用「gcov」效能分析支援(預設為停用)。 |
--disable-openmp | 停用 OpenMP(預設為啟用)。 某些 ImageMagick 演算法,例如卷積,在現代雙核和四核處理器上執行時,可以藉助 OpenMP API 實現顯著的加速。 |
--disable-largefile | 停用大型(64 位元)檔案偏移量的支援。 預設情況下,如果作業系統支援大型檔案,則 ImageMagick 會編譯為支援大型檔案(在 32 位元 CPU 上為 > 2GB)。某些使用 ImageMagick 程式庫的應用程式可能也需要支援大型檔案。通過 --disable-largefile 停用對大型檔案的支援,相依應用程式不需要特殊的編譯選項來使用程式庫中的大型檔案。 |
以下是可以設定的選用套件
--with-quantum-depth | 像素量子中的位元數(預設為 16)。 使用此選項可以指定每個像素量子(紅色、綠色、藍色和 Alpha 像素分量的值)使用的位元數。例如,--with-quantum-depth=8 使用 8 位元量子來建置 ImageMagick。大多數電腦顯示卡使用 8 位元量子。目前支援的參數為 8、16 或 32。我們建議使用預設值 16,因為某些圖像格式支援每個像素 16 位元。但是,此選項對於確定 ImageMagick 的整體執行時效能非常重要。 量子中的位元數決定了它可以包含的值的數量。每個量子級別支援的值比前一級別多 256 倍。下表顯示了各種量子大小可用的範圍。 Quantum Depth Valid Range (Decimal) Valid Range (Hex) 8 0-255 00-FF 16 0-65535 0000-FFFF 32 0-4294967295 00000000-FFFFFFFF 較大的像素量子可能會導致 ImageMagick 執行速度變慢,並且需要更多記憶體。例如,使用 16 位元像素量子可能會導致 ImageMagick 的執行速度比建置為支援 8 位元像素量子時慢 15% 到 50%(並且佔用兩倍的記憶體)。 圖像消耗的虛擬記憶體量可以使用以下公式計算:(5 * 量子深度 * 列數 * 行數) / 8。當資源有限時,這是一個重要的考慮因素,特別是因為處理圖像可能需要一次將多個圖像載入到記憶體中。下表顯示了 1024x768 圖像的記憶體消耗值 Quantum Depth Virtual Memory 8 3MB 16 8MB 32 15MB |
--enable-hdri | 準確表示寬範圍的強度級別。 |
--enable-osx-universal-binary | 在 OS X 上建置通用二進制檔案。 |
--without-modules | 停用對動態可載入模組的支援。 圖像編解碼器和處理模組建置為可載入模組,安裝在目錄 [prefix]/lib/ImageMagick-X.X.X/modules-QN(其中「N」等於 8、16 或 32,具體取決於量子深度)下的子目錄 coders 和 filters 中。模組建置選項只能與 --enable-shared 一起使用。如果未指定 --enable-shared,則停用對建置模組的支援。請注意,如果指定了 --enable-shared 和 --disable-modules,則模組載入器處於活動狀態(允許通過簡單地將模組複製到位來擴展已安裝的 ImageMagick),但 ImageMagick 本身不是使用模組建置的。 |
--with-cache | 設定像素快取閾值(預設為可用記憶體)。 使用此選項指定不同的圖像像素快取閾值。這將設定 ImageMagick 允許消耗的最大堆記憶體量,超過此量後將切換為使用記憶體映射的臨時檔案來儲存原始像素資料。 |
--without-threads | 停用執行緒支援。 預設情況下,ImageMagick 程式庫是使用多執行緒支援編譯的。如果不希望這樣,請指定 --without-threads。 |
--with-frozenpaths | 啟用凍結的委託路徑。 一般來說,外部程式名稱會被替換到 delegates.xml 設定檔中,並且不包含完整路徑。指定此選項以啟用使用 configure 所決定的位置來儲存程式的完整路徑。這對於程式儲存在多個路徑下,且使用者可能使用與建置 ImageMagick 的人員不同的 PATH 設定的環境很有用。 |
--without-magick-plus-plus | 停用 Magick++ 的建置/安裝。 停用 Magick++ 的建置,Magick++ 是 ImageMagick 的 C++ 應用程式介面。要建置 Magick++ 需要一個合適的 C++ 編譯器。指定 CXX configure 變數來選擇要使用的 C++ 編譯器(預設為 g++),並使用 CXXFLAGS 來選擇所需的編譯器最佳化和除錯旗標(預設為 -g -O2)。舊版的 C++ 編譯器通常會被 configure 測試拒絕,因此只有在 Magick++ 無法編譯時才需要指定此選項。 |
--without-perl | 停用 PerlMagick 的建置/安裝,或 預設情況下,PerlMagick 會在 ImageMagick 的一般 configure、make、sudo make install 程序中被方便地編譯和安裝。當指定了 --without-perl 時,您必須先安裝 ImageMagick,下載 PerlMagick 原始碼發行版,進行建置,最後安裝 PerlMagick。請注意,即使指定了 --without-perl,PerlMagick 仍然會被配置。如果提供了 --with-perl=/path/to/perl 參數,則 /../path/to/perl 將被視為要使用的 PERL 直譯器。如果您的 PATH 中的 perl 可執行檔不是 PERL5,或者不是您想要使用的 PERL 版本,那麼這一點很重要。 |
--with-perl=PERL | 使用指定的 Perl 二進制檔案來配置 PerlMagick。 |
--with-perl-options=OPTIONS | 從 Makefile.PL 產生 PerlMagick 的 Makefile 時,要傳遞到命令列的選項。 PerlMagick 模組通常使用 Perl 直譯器的安裝 PREFIX 來安裝,而不是 ImageMagick 的 PREFIX。如果 ImageMagick 的安裝前綴與 PERL 的 PREFIX 不同,那麼您可能會發現 PerlMagick 的 sudo make install 步驟會嘗試安裝到您沒有寫入權限的目錄樹中。當 PERL 隨作業系統一起提供或在網際網路服務提供者 (ISP) 的網路伺服器上時,這種情況很常見。如果您希望將 PerlMagick 安裝在其他地方,請透過 "--with-perl-options=PREFIX=/some/place" 為 PERL 的配置步驟提供 PREFIX 選項。MakeMaker 接受的其他選項包括 'LIB'、'LIBPERL_A'、'LINKTYPE' 和 'OPTIMIZE'。有關配置 PERL 擴充功能的更多資訊,請參閱 ExtUtils::MakeMaker(3) 線上手冊頁面。 |
--without-bzlib | 停用 BZLIB 支援。 |
--without-dps | 停用 Display Postscript 支援。 |
--with-fpx | 啟用 FlashPIX 支援。 |
--without-freetype | 停用 TrueType 支援。 |
--with-gslib | 啟用 Ghostscript 函式庫支援。 |
--without-jbig | 停用 JBIG 支援。 |
--without-jpeg | 停用 JPEG 支援。 |
--without-jp2 | 停用 JPEG v2 支援。 |
--without-lcms | 停用 LCMS 支援。 |
--without-lzma | 停用 LZMA 支援。 |
--without-png | 停用 PNG 支援。 |
--without-tiff | 停用 TIFF 支援。 |
--without-wmf | 停用 WMF 支援。 |
--with-fontpath | 添加至預設字型搜尋路徑之前。 |
--with-gs-font-dir | 包含 Ghostscript 字型的目錄。 指定包含 Ghostscript Postscript Type 1 字型檔案(例如 n022003l.pfb)的目錄,以便可以使用 FreeType 函式庫來渲染它們。如果字型檔案是使用預設的 Ghostscript 安裝路徑(${prefix}/share/ghostscript/fonts)安裝的,則 configure 應該能夠自動找到它們,並且不需要指定此選項。如果 Ghostscript 字型無法自動找到,或者需要覆蓋其位置,請指定此選項。 |
--with-windows-font-dir | 包含 MS-Windows 字型的目錄。 指定包含與 MS-Windows 相容的字型的目錄。當 ImageMagick 在 MS-Windows 下執行時,不需要這樣做。 |
--without-xml | 停用 XML 支援。 |
--without-zlib | 停用 ZLIB 支援。 |
--without-x | 不要使用 X Window 系統。 預設情況下,如果 X11 委託庫可用,ImageMagick 將使用它們。指定 --without-x 時,將停用 X11 的使用。不包含顯示、動畫和導入子命令。其餘子命令的功能將會減少,例如無法存取 X11 字體(請考慮改用 Postscript 或 TrueType 字體)。 |
--with-share-path=DIR | 共用目錄的替代路徑(預設為 share/ImageMagick)。 |
--with-libstdc=DIR | 在 DIR 中使用 libstdc++(適用於 GNU C++)。 |
雖然 configure 的設計目的是簡化 ImageMagick 的安裝,但它經常會發現一些在編譯 ImageMagick 時才會遇到的問題。configure 腳本會使用指定的編譯旗標(CFLAGS)、預處理器旗標(CPPFLAGS)和連結器旗標(LDFLAGS)執行編譯器(CC)來測試標頭和程式庫。任何錯誤都會記錄到 config.log 檔案中。如果 configure 無法找到標頭或程式庫,請查看此日誌檔以找出原因,但請注意,*config.log 中的錯誤是正常的*,因為 configure 的運作方式是嘗試某件事並查看它是否失敗。只有在測試應該在您的系統上通過時,config.log 中的錯誤才是一個問題。
configure 失敗的常見原因包括:1) 委託標頭不在標頭包含路徑中(CPPFLAGS -I 選項);2) 委託程式庫不在連結器搜尋/執行路徑中(LDFLAGS -L/-R 選項);3) 委託程式庫缺少函數(舊版本?);或 4) 編譯環境有誤。
如果已經嘗試了所有合理的修正措施,但問題似乎是由於 configure 腳本中的缺陷所致,請將錯誤報告發送到 ImageMagick 缺陷支援論壇。所有錯誤報告都應包含作業系統類型(如 uname -a 所報告)以及編譯器/編譯器版本。configure 腳本輸出的副本和/或 config.log 檔案的相關部分可能有助於找到問題。如果您發佈了 config.log 的部分內容,請同時發送一份 configure 輸出的腳本,以及您期望看到的內容(以及原因)的描述,以便識別和解決您所觀察到的故障。
ImageMagick 現已設定完成,可以開始建置
建置
設定 ImageMagick 後,可以從產生的 make 檔案中使用這些標準建置目標
- make
- 建置 ImageMagick。
- sudo make install
- 安裝 ImageMagick。
- make check
- 使用已安裝的 ImageMagick 執行測試(必須先執行 sudo make install)。Ghostscript 和 Freetype 是必要條件,否則某些轉譯文字以及 EPS、PS 和 PDF 格式的單元測試可能會失敗。這些單元測試需要開放的安全策略才能通過。
- make clean
- 移除建置目錄中由 make 建立的所有內容。
- make distclean
- 移除建置目錄中由 configure 和 make 建立的所有內容。如果您想從頭開始,這會很有用。
- make uninstall
- 使用目前的設定,從系統中移除所有由 sudo make install 安裝(或將會安裝)的檔案。請注意,由於 Perl 不再支援 uninstall 目標,因此此目標對於 PerlMagick 來說並不完美。
在大多數情況下,您只需要使用以下命令來編譯 ImageMagick
make
建置完成後,您可以選擇將 ImageMagick 安裝到您的系統上,如下所述。
安裝
現在 ImageMagick 已設定和建置完成,請輸入
make install
即可安裝。
預設情況下,ImageMagick 會將二進位檔案安裝在 /../usr/local/bin 中,將程式庫安裝在 /../usr/local/lib 中,將標頭檔安裝在 /../usr/local/include 中,並將文件安裝在 /../usr/local/share 中。您可以透過為 configure 提供選項 --prefix=PATH 來指定 /../usr/local 以外的其他安裝路徑。如果您沒有在預設路徑下安裝的權限,或者您想改為安裝在系統目錄中,那麼這個選項就很有用。
若要確認您已成功安裝 ImageMagick 發行套件,請確保安裝目錄位於您的可執行檔搜尋路徑中,然後輸入
magick logo: logo.gif identify logo.gif
ImageMagick 標誌將會顯示在您的 X11 顯示器上。
若要驗證 ImageMagick 組建配置,請輸入
magick identify -list configure
若要列出支援的影像格式,請輸入
magick identify -list format
若要進行更全面的測試,您可以透過輸入以下命令來執行 ImageMagick 測試套件
make check
Ghostscript 是先決條件,否則 EPS、PS 和 PDF 測試將會失敗。請注意,由於開發人員的環境與您自己的環境之間存在差異,因此即使結果正確,也可能會有少數測試失敗。開發人員的環境與您自己的環境之間的差異可能包括編譯器、CPU 類型和使用的程式庫版本。ImageMagick 開發人員使用所有相依程式庫的最新版本。
Linux 特定的組建說明
從 imagemagick.org 或其 鏡像 下載 ImageMagick.src.rpm,並根據其 訊息摘要 驗證發行套件。
使用以下命令組建 ImageMagick
rpmbuild --rebuild ImageMagick.src.rpm
組建完成後,找到 RPMS 資料夾並安裝 ImageMagick 二進位 RPM 發行套件
$ rpm -ivh ImageMagick-7.1.1-?.*.rpm
Mac OS X 特定的組建說明
以管理員身分或使用sudo命令執行這些步驟
安裝 MacPorts。下載並安裝 MacPorts,然後輸入以下命令
sudo port -v install freetype +bytecode sudo port -v install librsvg sudo port -v install graphviz +gs +wmf +jbig +jpeg2 +lcms
這將安裝 ImageMagick 將會使用的許多委託程式庫,例如 JPEG 和 FreeType。
從 Apple 安裝最新的 Xcode。
使用port命令安裝您需要的任何委託程式庫,例如
sudo port install jpeg
現在讓我們組建 ImageMagick
下載 ImageMagick 原始碼發行套件,並根據其 訊息摘要 驗證發行套件。
解壓縮並切換到頂層 ImageMagick 目錄
$ tar xvzf ImageMagick-7.1.1-38.tar.gz
$ cd ImageMagick-7.1.1-38
配置 ImageMagick
./configure --prefix=/opt --with-quantum-depth=16 \ --disable-dependency-tracking --with-x=yes \ --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib/ \ --without-perl"
組建 ImageMagick
make
安裝 ImageMagick
sudo make install
若要驗證您的安裝,請輸入
/opt/local/bin/identify -list font
以列出 ImageMagick 已知的所有字體。
若要測試 ImageMagick GUI,請在新 Shell 中輸入
display -display :0
MinGW 特定的組建說明
雖然您可以自行下載並安裝委託程式庫,但許多程式庫已經可以在 GnuWin32 發行套件中取得。下載並安裝您需要的任何委託程式庫,例如 JPEG、PNG、TIFF 等。安裝套件時,請務必指定開發標頭。接下來,輸入
$ tar jxvf ImageMagick-7.1.1-?.tar.bz2
$ cd ImageMagick-7.1.1-38
$ export CPPFLAGS="-Ic:/Progra~1/GnuWin32/include"
$ export LDFLAGS="-Lc:/Progra~1/GnuWin32/lib"
$ ./configure --without-perl
$ make
$ sudo make install
處理意外問題
ImageMagick 的下載、配置、組建和安裝很可能會按照預期順利完成,但是,某些系統和環境可能會導致一個或多個步驟失敗。我們將討論我們遇到的一些問題,以及如何採取糾正措施來確保您擁有可用的 ImageMagick 版本。
組建問題
如果組建抱怨缺少相依性(例如 .deps/source.PLO),請在您的 configure 命令列中加入 --disable-dependency-tracking。
某些系統在組建時可能會因為未解析的符號而無法連結。請嘗試將 LDFLAGS 加入 configure 命令列
configure LDFLAGS='-L/usr/local/lib -R/usr/local/lib'
動態連結器執行階段繫結
在某些系統上,ImageMagick 可能找不到其共用程式庫 libMagick.so。請嘗試使用程式庫路徑執行 ldconfig
/sbin/ldconfig /usr/local/lib
Solaris 和 Linux 系統具有 ldd 命令,可用於追蹤 ImageMagick 所依賴的函式庫。
ldd `which convert`
委派函式庫
您有時可能會收到這些警告
no decode delegate for this image format no encode delegate for this image format
這個例外狀況表示在建置 ImageMagick 時,外部委派函式庫或其標頭檔不可用。若要新增對圖像格式的支援,請下載並安裝必要的委派函式庫及其標頭檔,然後重新配置、重建和重新安裝 ImageMagick。舉例來說,讓我們新增對 JPEG 圖像格式的支援。首先,我們安裝 JPEG RPM
yum install libjpeg libjpeg-devel
現在重新配置、重建和重新安裝 ImageMagick。若要確認 JPEG 現在在 ImageMagick 中是否獲得適當支援,請使用此命令
magick identify -list format
您應該會在 JPEG 標籤中看到 rw- 模式。此模式表示可以讀取或寫入圖像,並且每個圖像檔只能支援一個圖像。
PerlMagick
如果 PerlMagick 無法連結並顯示類似於 libperl.a 找不到 的訊息,請使用 --enable-shared 或 --enable-shared --with-modules 選項重新執行 configure。