Как исправить ошибки компиляции Perl's Font :: FreeType? - PullRequest
2 голосов
/ 20 января 2010

Я пытаюсь установить модуль Perl Font :: FreeType на Linux-коробку CentOS с использованием cpan. Я запускаю 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 ]

2 голосов
/ 21 января 2010

См. http://rt.cpan.org/Public/Dist/Display.html?Name=Font-FreeType, в очереди RT есть исправления, которые можно применить для правильной сборки модуля.

Ether и Cfreak ошиблись, это просто ошибка из-за битрота в Font::FreeType.

0 голосов
/ 20 января 2010

Вы всегда можете переустановить cpan либо используя себя (sudo cpan CPAN), либо вручную загрузив дистрибутив CPAN и следуя инструкциям по сборке.

Однако, как правило, когда вы получаете ошибки компиляции C-ish из установки CPAN, это говорит о том, что вы можете пропустить базовую библиотеку. Font :: FreeType использует библиотеку FreeType2; Вы установили это первым? (Это в / usr / lib /?)

0 голосов
/ 20 января 2010

Похоже, у вас не установлен пакет разработки freetype. В командной строке попробуйте:

yum install freetype-devel

Дайте этой установке, а затем перезапустите установку для вашего модуля Perl. (вам нужно сначала очистить Font :: Freetype)

...