免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8562 | 回复: 15
打印 上一主题 下一主题

php编译gd出错!(已解决) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-11 01:51 |只看该作者 |倒序浏览
在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已编译安装了的

网上搜索不到原因


补充:现在解决了.
可以参见
http://aspn.activestate.com/ASPN/Mail/Message/php-dev/3803631
可以算是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通过了

[ 本帖最后由 gydoesit 于 2010-1-18 10:34 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2010-01-11 08:46 |只看该作者
不能用apt安装?

论坛徽章:
0
3 [报告]
发表于 2010-01-11 09:02 |只看该作者
yum install    libpng-devel

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
4 [报告]
发表于 2010-01-11 09:56 |只看该作者
缺少PNG库文件啊。

论坛徽章:
0
5 [报告]
发表于 2010-01-11 15:58 |只看该作者
libpng-devel这个包装上一下

论坛徽章:
0
6 [报告]
发表于 2010-01-11 19:27 |只看该作者
哎,楼上几位似乎都不认真看我的帖呀.我已经编译安装libpng了!!!还搞什么apt?ubuntu也没有yum!编译安装是默认,没加任何参数,相应的so文件也都在!

ls /usr/local/lib |grep png
libpng14.a
libpng14.la
libpng14.so
libpng14.so.14
libpng14.so.14.0.0
libpng.a
libpng.la
libpng.so

$ sudo apt-get install libpng-devel
[sudo] password for gyjywbgame:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
E: 无法找到软件包 libpng-devel
$ sudo apt-get install libpng-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
注意,选取 libpng12-dev 而非 libpng-dev
libpng12-dev 已经是最新的版本了。
共升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 191 个软件未被升级。

论坛徽章:
0
7 [报告]
发表于 2010-01-12 09:32 |只看该作者

北京递归科技招聘php开发工程师

要求:
熟悉PHP面向对象的设计方法,理解MVC
具有很好的代码编写能力和良好的代码编程习惯
精通Javascript,熟练掌握XHTML、CSS、DIV等页面技术,熟练应用AJAX开发
熟悉Mysql数据库应用开发,了解Mysql的数据库配置管理、性能优化
熟悉ecmall程序者优先,有移动增值行业平台开发经验者优先

公司网站  www.cngda.com
公司地址:北京市海淀区学清路金码大厦2311
简历投递邮箱chinaunix2008@gmail.com

论坛徽章:
154
2022北京冬奥会纪念版徽章
日期:2015-08-07 17:10:5720周年集字徽章-年
日期:2022-10-26 16:44:2015-16赛季CBA联赛之深圳
日期:2022-11-02 14:02:4515-16赛季CBA联赛之八一
日期:2022-11-28 12:07:4820周年集字徽章-20	
日期:2023-07-19 08:49:4515-16赛季CBA联赛之八一
日期:2023-11-04 19:23:5115-16赛季CBA联赛之广夏
日期:2023-12-13 18:09:34
8 [报告]
发表于 2010-01-12 15:54 |只看该作者
On Red Hat EL5.1 you need to install the libtool-ltdl-devel package (or the workaround below) to compile php.
http://www.php.net/manual/en/install.unix.php

----
试试deb/ubu下面,有没有类似的包看看:wink:

论坛徽章:
0
9 [报告]
发表于 2010-01-13 09:32 |只看该作者

回复 #6 gydoesit 的帖子

楼主这个怎么解决的
我也安装了libpng1.4
安装gd的时候同样提示这个错误

论坛徽章:
0
10 [报告]
发表于 2010-01-14 02:01 |只看该作者
我也出现这个问题了。。不知道是什么原因。。。

请楼主出来说明一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP