gd mysql错误_php编译gd出错!(已解决)

php编译gd出错!(已解决)

在32位ubuntu9.04上编译php5.2.12,到gd时make出错:

ext/gd/libgd/.libs/gd_png.o: In function

`php_gd_gdImageCreatefromPngCtx':

/home/test/php-5.2.12/ext/gd/libgd/gd_png.c:142: undefined reference to

`png_check_sig'

collect2: ld returned 1 exit status

make: *** [sapi/cli/php] 错误 1

直接下载gd,在gd目录make也类似的错

gcc -g -O2 -o .libs/annotate annotate.o /usr/local/lib/libiconv.so

-Wl,-rpath -Wl,/usr/local/lib  -L/usr/local/lib

./.libs/libgd.so /usr/local/lib/libjpeg.so /usr/local/lib/libfreetype.so

/usr/local/lib/libpng14.so -lz -lm

./.libs/libgd.so: undefined reference to `png_check_sig'

collect2: ld returned 1 exit status

make[2]: *** [annotate] 错误 1

make[2]:正在离开目录 `/home/test/gd-2.0.35'

make[1]: *** [all-recursive] 错误 1

make[1]:正在离开目录 `/home/test/gd-2.0.35'

make: *** [all] 错误 2

把php版本换为5.2.8也错,而且从上面单独编译gd错来看,与php无关.libpng已编译安装了的

网上搜索不到原因

补充:现在解决了.

可以参见

[url]http://aspn.activestate.com/ASPN/Mail/Message/php-dev/3803631[/url]

可以算是php的一个bug,libpng-1.4.0源码中的libpng-1.4.0.txt有说明,已经取消了png_check_sig这个函

数,改用png_sig_cmp代替.自从libpng-0.90就已经反对使用png_check_sig函数了.这个帖子中采用修改php源码的方

法,编辑ext/gd/libgd/gd_png.c,将

if (!png_check_sig (sig, 8)) { /* bad signature */

换成

if (png_sig_cmp (sig, 0, 8)) { /* bad signature */

但我不知道其他哪些地方有没有这个函数,所以我还是用libpng-1.2.35吧,看libpng-1.2.35.txt,就没有提

png_check_sig的事.

编译安装libpng-1.2.35后,php-5.2.12的make通过了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值