GD 的安裝



贊助商連結


algolee
2005-08-18, 04:59 PM
我最近在裝 GD , 用的主機是一台 AMD 64 位元的機器
OS 是 Fedora Core 4
安裝的軟體版本分別是:
freetype-2.1.10.tar.tar
jpegsrc.v6b.tar.gz
libpng-1.2.8.tar.gz
zlib-1.2.3.tar.tar
gd-2.0.9.tar.tar

安裝的方式如下:
首先,安裝 Freetype
tar xvf freetype-2.1.10.tar.tar
cd freetype-2.1.10
./configure
make
make install

接下來安裝 zlib
tar xvf zlib-1.2.3.tar.tar
cd zlib-1.2.3
./configure
make
make install

再來是安裝 libpng
tar xvf zlib-1.2.3.tar.tar
cd zlib-1.2.3
./configure
make
make install

然後再安裝 jpeg-6b
tar zxvf jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure --enable-shared
這邊會產生錯誤
checking host system type... Invalid configuration `x86_64-unknown-linux-gnu': machine `x86_64-unknown' not recognized

如果我是用 ./configure 則不會發生錯誤
於是我用單純的 ./configure 的方式,不加 --enable-shared 參數
./configure
make
make install
( 在過程中會出現錯誤,因為缺少兩個目錄 /usr/local/man 跟 /usr/local/man/man1
請用下面指令造出該兩個目錄即可
mkdir /usr/local/man
mkdir /usr/local/man/man1 就可以順利完成 make install )

然後就要開始進入安裝 GD,也就是問題最多的步驟了
tar xvf gd-2.0.9.tar.tar
cd gd-2.0.9
./configure
make

在 make 時,會發生下面的錯誤
  In file included from gdft.c:55:
  /usr/local/include/freetype2/freetype/freetype.h:20:2: error: #error "`ft2build.h' hasn't been included yet!"
  /usr/local/include/freetype2/freetype/freetype.h:21:2: error: #error "Please always use macros to include FreeType header files."
  /usr/local/include/freetype2/freetype/freetype.h:22:2: error: #error "Example:"
  /usr/local/include/freetype2/freetype/freetype.h:23:2: error: #error " #include <ft2build.h>"
  /usr/local/include/freetype2/freetype/freetype.h:24:2: error: #error " #include FT_FREETYPE_H "
  make[2]: *** [gdft.lo] Error 1
  make[2]: Leaving directory `/home/java/gd-2.0.9'
  make[1]: *** [all-recursive] Error 1
  make[1]: Leaving directory `/home/java/gd-2.0.9'
  make: *** [all] Error 2

於是我就手動在 gdft.c 加入下面兩行
#include <ft2build.h>
#include FT_FREETYPE_H

存檔後重新 make , 卻發現下面的錯誤訊息:
/usr/bin/ld: /usr/local/lib/libz.a(compress.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libz.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [libgd.la] Error 1
make[2]: Leaving directory `/home/java/gd-2.0.9'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/java/gd-2.0.9'
make: *** [all] Error 2

請問有哪位網友遇過同樣的問題,應該如何解呢?
謝謝!~~ :D