代码之家  ›  专栏  ›  技术社区  ›  Josh Andreas Rehm

如何修复Perl的字体::freetype编译错误?

  •  2
  • Josh Andreas Rehm  · 技术社区  · 15 年前

    我正在尝试安装Perl模块 Font::FreeType 在使用CPAN的CentOS Linux设备上。我跑 sudo cpan 在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.
    
    3 回复  |  直到 15 年前
        1
  •  2
  •   daxim e.dan    15 年前

    http://rt.cpan.org/Public/Dist/Display.html?Name=Font-FreeType ,RT队列具有可以应用以使模块正确生成的修补程序。

    Ether和Cfreak猜错了,这只是一个由于误入 Font::FreeType .

        2
  •  0
  •   Cfreak    15 年前

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

    yum install freetype-devel
    

    让它安装,然后重新运行perl模块的安装。(你得先做干净的字体::freetype)

        3
  •  0
  •   Ether    15 年前

    您可以使用自己重新安装CPAN( sudo cpan CPAN ,或者通过手动下载CPAN分发版并遵循构建说明。

    但是,通常当您从CPAN安装中获得C-ISH编译错误时,这表明您可能缺少底层库。FONT::freetype使用freetype2库;您是先安装的吗?(它在/usr/lib/?)中吗?