如何修复Perl';s Font::FreeType编译错误?

如何修复Perl';s Font::FreeType编译错误?,perl,compiler-errors,cpan,freetype,Perl,Compiler Errors,Cpan,Freetype,我正在尝试使用cpan在CentOS linux机器上安装Perl模块。我运行sudocpan,在cpan外壳内部运行install Font::FreeType。但是make失败如下: Writing Makefile for Font::FreeType cp lib/Font/FreeType.pm blib/lib/Font/FreeType.pm cp lib/Font/FreeType/Face.pm blib/lib/Font/FreeType/Face.pm cp lib/Fon

我正在尝试使用cpan在CentOS linux机器上安装Perl模块。我运行
sudocpan
,在cpan外壳内部运行
install Font::FreeType
。但是
make
失败如下:

Writing Makefile for Font::FreeType
cp lib/Font/FreeType.pm blib/lib/Font/FreeType.pm
cp lib/Font/FreeType/Face.pm blib/lib/Font/FreeType/Face.pm
cp lib/Font/FreeType/Glyph.pm blib/lib/Font/FreeType/Glyph.pm
/usr/bin/perl /usr/lib/perl5/site_perl/5.8.8/ExtUtils/xsubpp  -typemap /usr/lib/perl5/5.8.8/ExtUtils/typemap -typemap typemap  FreeType.xs > FreeType.xsc && mv FreeType.xsc FreeType.c
gcc -c  -I/usr/include/freetype2 -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables   -DVERSION=\"0.03\" -DXS_VERSION=\"0.03\" -fPIC "-I/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE"   FreeType.c
FreeType.c: In function ‘XS_Font__FreeType_new’:
FreeType.c:425: warning: unused variable ‘class’
FreeType.xs: In function ‘XS_Font__FreeType__Face_has_reliable_glyph_names’:
FreeType.xs:528: warning: implicit declaration of function ‘FT_Has_PS_Glyph_Names’
FreeType.xs: In function ‘XS_Font__FreeType__Glyph_char_code’:
FreeType.xs:808: error: invalid lvalue in assignment
我在谷歌上搜索过,但似乎找不到任何关于如何解决这个问题的建议。我有一种感觉,cpane可能会破坏某些东西,因为当我去检查我的版本时,我很惊讶:

# sudo cpan --version
/usr/bin/cpan version [unknown] calling Getopt::Std::getopts (version 1.05 [paranoid]),
running under Perl version 5.8.8.

看起来您没有安装freetype开发包。在命令行上尝试:

yum install freetype-devel

让它安装,然后重新运行perl模块的安装。(您需要先执行clean Font::Freetype)

您可以通过使用自身(
sudo cpan cpan
)或手动下载cpan发行版并按照构建说明重新安装cpan

然而,通常当您从CPAN安装中获得C-ish编译错误时,这表明您可能缺少一个底层库。字体::FreeType使用FreeType2库;你是先安装的吗?(是否在/usr/lib/?)中)

请参见,RT队列中有修补程序,您可以应用这些修补程序来正确构建模块


Ether和Cfreak猜错了,这只是因为
Font::FreeType

Hmmm中的bitrot导致的一个bug,刚刚尝试过,得到了
包FreeType-devel-2.2.1-21.el5_3.i386,已经安装了最新版本
是的,库在/usr/lib/
lrwxrwx 1 root root 21 Jan 20 12:46/usr/lib/libfreetype.so->libfreetype.so.6.3.10
——奇怪的是错误是“赋值中的左值无效”,这听起来像是FreeType代码中的错误,我错了吗?@Josh:是的,或者是FreeType库和你下载的XS层版本之间的某种不兼容,还有Perl本身。这可能需要直接联系Font::FreeType的作者(或者通过rt.cpan.org提交一份针对该模块的错误报告)。这正是我在谷歌搜索的目的,但由于某种原因找不到。谢谢在命令行中,您应该能够运行
cpan Font::FreeType
。这不能解决你的问题。安装步骤只需要sudo,因此可以配置CPAN.pm来使用它。我很好奇您的cpan源代码是什么样子,因为我不支持--version开关。:)@布莱恩·德福伊:谢谢你给我的提示和整理我的标题!显然,我的cpan也不支持版本切换;-)这是Centos 5.4,如果这很重要的话。