php5.3.*编译出现make: *** [ext/gd/libgd/gd_compat.lo] Error 1 解决方法

环境:CentOS 5.8  x64  php5.3.6     PS:编译php5.3.10也会有这样的情况。
     升级系统,把php5.2.9升级到5.3.6,按照以前的编译参数,configure能正常通过,但是在make的时候提示:
In file included from /root/php-5.3.6/ext/gd/libgd/gd_compat.c:8:
/usr/local/jpeg/include/jpeglib.h:938: error: expected declaration specifiers or ‘...’ before ‘FILE’
/usr/local/jpeg/include/jpeglib.h:939: error: expected declaration specifiers or ‘...’ before ‘FILE’
make: *** [ext/gd/libgd/gd_compat.lo] Error 1
百度谷歌了好久,网上给的方案是修改 php-5.3.6/ext/gd/libgd/gd_compat.c 的代码。把文件里面的png.h和jpeglib.h路径改成自己环境下的绝对路径,比如:/usr/local/libpng/include/png.h  和 /usr/local/jpeg/include/jpeglib.h 重新configure, make 结果还是不行,提示同样错误。后来看到国外的一个论坛上找到了解决方法:
修改php-5.3.6/ext/gd/libgd/gd_compat.c 把png.h 改成绝对路径(这个在编译gd库的时候应该就碰到了,同样的路径即可)
并在# include <jpeglib.h> 前面增加一行 #include <stdio.h>  
 
php5.3.*编译出现make: *** [ext/gd/libgd/gd_compat.lo] Error 1 解决方法_第1张图片
 
然后 make clean
重新 configure  、make 、make install 就可以了。

 看到这个结果,我就放心了。

该文章转载自 http://blog.163.com/a12333a_li/blog/static/8759428520121044495065/

你可能感兴趣的:(php5.3.*编译出现make: *** [ext/gd/libgd/gd_compat.lo] Error 1 解决方法)