make clean distclean
export LDFLAGS="-lgd"
./configure ...your normal parameters
make

解决方案 »

  1.   

    又出现问题了,照着(水龙头)兄的方法,我在./configure 时出现下面的错误提示:
    configure: error: can not run test program while cross compiling
    郁闷!有谁能告诉我你是怎么装上的吗?
      

  2.   

    看上去,这好像是php的一个bug了,你试试新的版本php4.3.5
    或者试验一个snap http://snaps.php.net/或者修改gd.c这个文件,/* gdFreeFontCache(); */
    你在哪里下的php源文件?
      

  3.   

    在php.net下的4.3.3版.用同样的windows版,在WIN下GD能用.
      

  4.   

    windows下的GD可用,因为不是同一个build,你试试4.3.5吧 ,或者下一个snap试试,我查到的原因是php的bug在10月份的snap才被修改掉,而4.3.3是8月份发布的。
      

  5.   

    我下了4.3.4,make的时候还是出现下面的错误.
    :/tmp/php-4.3.3/ext/gd/gd.c:382: undefined reference to `gdFreeFontCache'
    collect2: ld returned 1 exit status
    make: *** [sapi/cgi/php] Error 1
    这会不会是GD库的问题?我下的是gd-2.0.15.还有一个是我下了一个JPEG-6B的包,解完后发现少一个libjpeg.so文件,该怎么办?
      

  6.   

    哈哈,我昨天编译的时候居然出现了和你一样的错误修改办法就是我提到的改源码改ext/gd/gd.c 的382行/* gdFreeFontCache(); */这样编译就没问题了。
      

  7.   

    谢谢大水龙头老大,我看了gd.c的原文件,从300行到387行的编排格式是下面这样的:
    +--  7 行: php_free_gd_image----------------------------------------------------
    +-- 12 行: php_free_gd_font-----------------------------------------------------
    +-- 54 行: PHP_MINIT_FUNCTION---------------------------------------------------
    +-- 10 行: PHP_RSHUTDOWN_FUNCTION-----------------------------------------------
    这种格式我从没见过,不知道该怎么改,再麻烦你给我讲讲。
    从378-387是用
    +-- 10 行: PHP_RSHUTDOWN_FUNCTION-----------------------------------------------
    代替的。
      

  8.   

    谢谢老大,我改完了,现在正在make。gdFreeFontCache会不会是调用的字体函数啊?
      

  9.   

    老大,我快晕倒了!配置,编译,安装都一路通过。可在infophp()下还是没看到关于GD的信息。
    写了一段程序,用到了imagecreate(),运行时还是提示我没有定义的函数。晕死了。
    我第一次安装PHP(4.3.3)+APACHE+MYSQL时,APACHE和MYSQL都分别安装到/usr/local/下的apache和mysql目录下。但PHP没有指定目录,是系统默认的目录。
    然后我在重新编译PHP添加GD的时候,先去下了php-4.3.4.tar.gz,解压完后直接用了./configure,没带任何参数,make,make install,没出现问题。像这样可以把php4.3.3升级到4.3.4吗?
    接下来我就添加GD了,用的是GD-2.0.15,安装在/tmp/gd目录里。在php-4.3.4目录下配置,用的是./configure --with-gd=/tmp/gd ,没有其它参数,make ,make install,通过。可不但在INFO下看不到GD的信息,imagecreate()还是不能用。
    我的问题出在哪儿?
    太麻烦你了。谢谢!
      

  10.   

    首先是phpinfo() ,^_^,不过这该是笔误
    为什么装在/tmp呀,/tmp听名字都知道是放临时文件的呀,gd还是装在默认目录吧编译项
    ./configure --with-mysql=/usr/local/mysql --enable-track-vars \
    --with-apxs=/usr/local/apache/bin/apxs \
    --with-gd=/usr/local --enable-gd-native-ttf \
    --with-jpeg-dir=/usr/local --with-png-dir=/usr/local \
    --with-freetype=/usr/local --with-ttf --with-t1lib当然libjpeg,libpng,freetype,T1lib这些都要装的,这些应该rpm里有的吧因为我用的不是linux而是freebsd
    linux如果lib是装在/usr下的,上面的=/usr/local都不要
    你可以找找还有我不太清楚前面你把300行到387行给我看是什么意思呀???
    只需要把382行 注释就应该可以编译通过了