文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>linux下perl的gd库安装

linux下perl的gd库安装

时间:2009-04-19  来源:snowtty

linux下perl的gd库安装 2008-03-24 14:43
所需准备软件:
①从 http://stein.cshl.org/WWW/software/GD 上下载 GD.pm 的最新版 for Unix。我使用的是GD-2.35.tar.gz
②确认主机是否已经安装好 Perl 解释器和 GCC 编译器,而且你必须以 root 身份登陆,否则无法安装。
③gd-2.0.33.tar.gz,jpegsrc.v6b.tar.gz

安装步骤:
1) JPEG libs
+ Downloaded from http://www.ijg.org/files/jpegsrc.v6b.tar.gz
+ mkdir /usr/local/jpeg6
+ mkdir /usr/local/jpeg6/bin
+ mkdir /usr/local/jpeg6/man
+ mkdir /usr/local/jpeg6/man/man1
+ mkdir /usr/local/jpeg6/incude
+ mkdir /usr/local/jpeg6/lib
+ ./configure --prefix=/usr/local/jpeg6 --enable-shared
+ make
+ make test
+ make install

2) gd库
+ Downloaded from http://www.boutell.com/gd/http/
+ mkdir /usr/local/gd
因为我装了libpng和freetype,
+./configure --prefix=/usr/local/gd --with-jpeg=/usr/local/jpeg6 --with-png=/usr/local/lib/ --with-zlib --with-freetype=/usr/local/freetype/
+ make
+ make install

3) GD-Perl
+ Downloaded from http://stein.cshl.org/WWW/software/GD
+ tar xzvf GD-2.35.tar.gz
perl Makefile.PL GD_JPEG -lib_gd_path /usr/local/gd -lib_jpeg_path /usr/local/jpeg6
如果出现错误** WARNING: found gd.h header file in /usr/include/gd.h, but it is expected at /usr/local/include/gd.h. This may cause compile errors! **
** Possible problems found **
可以不理会他,但是我出现的问题是 无法通过这个命令
说找不到一些类的结构
我猜 可能是以前的版本GD库的gd.h造成的 太老了 没有这些函数
就把/usr/local/gd/include/gd.h 拷贝到/usr/include/gd.h
结果就通过了 不再报错了

有可能出现要你选择的画面 不过不一定,我最后安装成功也没出现这个界面,
关键看服务器的错误log记录

Please choose the features that match how libgd was built:
Build JPEG support? [y] y
Build PNG support? [y] n
Build FreeType support? [y] n
Build GIF support? [y] y
Build XPM support? [y] n

-----------
+ make
-------------------
--------------------
+ make test
---------------------
--------------------
+ make install
---------------------

Installing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/GD/GD.bs
Installing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/GD/GD.so
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/GD.pm
Installing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/qd.pl
Installing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/GD/Polygon.pm
Installing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/GD/Image.pm
Installing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/GD/Polyline.pm
Installing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/GD/Simple.pm
Installing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/GD/autosplit.ix
Installing /usr/share/man/man1/bdf2gdfont.pl.1
Installing /usr/share/man/man3/GD::Image.3pm
Installing /usr/share/man/man3/GD::Polyline.3pm
Installing /usr/share/man/man3/GD::Simple.3pm
Installing /usr/share/man/man3/GD::Polygon.3pm
Installing /usr/share/man/man3/GD.3pm
Installing /usr/bin/bdf2gdfont.pl
Writing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/GD/.packlist
Appending installation info to /usr/lib/perl5/5.8.5/i386-linux-thread-multi/perllocal.pod

装完以后确认被装在/usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/
确认GD库已经装上用cgi程序作为测试
test.cgi 权限设置为775

#!/usr/bin/perl
print "Content-type:text/html\n\n";
use GD;
print $GD::VERSION, "\n";

如果GD库装上了,会显示2.35
如果报错 可以检查服务器log /apache/logs/下
如果不报错可以用以下程序来检测
testgd.cgi 权限设置为775

#!/usr/bin/perl
print "Content-type:image/jpeg\n\n";
use GD;
$im = new GD::Image(130,18);
$black = $im->colorAllocate(0,0,0);
$white = $im->colorAllocate(255,255,255);
$im->fill(10,10,$black);
$im->string(gdSmallFont,2,1,"http://www.CGIer.com/",$white);
binmode STDOUT;
print $im->jpeg;
exit;

如果可以正常显示黑底白字的http://www.CGIer.com/图形 说明你的GD库已经安装成功了一半
试着在上面程序中加入下面一句话$image = GD::Image->newFromJpeg("test.jpg", 1);
然后查看log记录
如果显示

Can't use an undefined value as a symbol reference at /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/GD/Image.pm line 175.

那么你的GD库已经完全ok了

而我却是记录着

Can't locate object method "newFromJpeg" via package "GD::Image" at /usr/etc/wwwroot/ftp.mofang.cn/cgi-bin/test4.cgi line 5.

这个问题一直困扰了我有10多个小时,找不到解决方法,几次想放弃了,可是已经快成功了阿,走到这步真不容易
在google上搜到和我遇到同样问题的 但是也没有解决方法 最后不了了之
我想只能靠自己了,最终还是找到了问题的根结
用rpm -qa|grep gd 发现服务器上装过gd-1.8的版本 我把这个用rpm -e卸掉了,包括那个gd-devel-1.8
然后全部重新装一下GD还是不行
此后停滞了大概半天 没有进展
我在我本地虚拟机redhat9和公司另外一台redhat as4.0服务器上 结果装了都没任何问题 很快就能用
这就纳闷了 为什么这台机子这么怪异呢
最后我抱着试一试的方法 从rehat as4.0的安装盘里把gd-2.0.28-4.i386.rpm,gd-devel-2.0.28-4.i386.rpm这两个安装包都装上去了
然后终于可以了查看log记录
相关阅读 更多 +
排行榜 更多 +
兔子跳一跳游戏

兔子跳一跳游戏

休闲益智 下载
球球跳跃游戏

球球跳跃游戏

休闲益智 下载
森林之灵游戏

森林之灵游戏

休闲益智 下载