Установка XML :: LibXSLT на ActiveState Perl 5.8 - PullRequest
0 голосов
/ 07 ноября 2011

Для обработки XSLT я пытаюсь использовать XML :: LibXSLT. У меня ActiveState Perl на Win32. Как я понимаю, мне нужно сначала установить libxslt, прежде чем вызывать perl Makefile.PL.

для libxslt на win32, кажется, что двоичные файлы уже доступны, и мы можем их использовать (поэтому нет необходимости компилировать и собирать libxslt). Это доступно в FTP: //ftp.zlatkovic.com/libxml/

Итак, я скачал libxslt ... zip вместе с другими зависимостями - libxml, iconv и zlib.

Но когда я пытаюсь скомпилировать его с помощью команды 'perl Makefile.PL', я получаю сообщение об ошибке:

running pkg-config libexslt... failed
    using fallback values for LIBS and INC
    Warning: prerequisite XML::LibXML 1.70 not found. We have 1.64.
    Note (probably harmless): No library found for -llibxslt
    Note (probably harmless): No library found for -llibxml2
    Note (probably harmless): No library found for -lzlib
    Note (probably harmless): No library found for -llibexslt
    Writing Makefile for XML::LibXSLT
    Writing MYMETA.yml and MYMETA.json

Из-за этого последующая команда 'dmake' также не работает из-за отсутствия заголовочных файлов. Вот вывод:

C:/Perl/site/bin/gcc.exe -c     -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -DHASATTRIBUTE -fno-strict-aliasing -mms-bitfields -O2           -DVERSION=\"1.75\"    -DXS_VERSION=\"1.75\"  "-IC:\Perl\lib\CORE"  -DHAVE_BLANK -DHAVE_BLANK -DHAVE_EXSLT LibXSLT.c
    LibXSLT.xs:12:32: libxslt/xsltconfig.h: No such file or directory
    LibXSLT.xs:13:26: libxslt/xslt.h: No such file or directory
    LibXSLT.xs:14:35: libxslt/xsltInternals.h: No such file or directory
    LibXSLT.xs:15:31: libxslt/transform.h: No such file or directory
    LibXSLT.xs:16:31: libxslt/xsltutils.h: No such file or directory
    LibXSLT.xs:17:29: libxslt/imports.h: No such file or directory
    LibXSLT.xs:18:32: libxslt/extensions.h: No such file or directory
    LibXSLT.xs:19:30: libxslt/security.h: No such file or directory
    LibXSLT.xs:21:28: libexslt/exslt.h: No such file or directory
    LibXSLT.xs:22:34: libexslt/exsltconfig.h: No such file or directory
    LibXSLT.xs:24:30: libxml/xmlmemory.h: No such file or directory

Подскажите, пожалуйста, какую конфигурацию / настройку мне не хватает.

Ответы [ 2 ]

0 голосов
/ 11 ноября 2011

Я не использую златковские двоичные файлы, но принцип тот же: либо вы копируете файлы .a / .h туда, где у вас есть другие файлы .a / .h, либо указываете Makefile.PL, где их искать , Я делаю это, редактируя Makefile.PL

$config{LIBS}='-l....\lib\libxml2.a -l....\lib\libiconv.a';
$config{INC}='-I....\include\libxml2';
$config{DEFINE} =' -DLIBXML_STATIC -static-libgcc ';
WriteMakefile(...
0 голосов
/ 08 ноября 2011

Это предупреждение вызывает беспокойство (я бы подумал об обновлении вашего модуля XML :: LibXML), но реальная проблема заключается в том, что Makefile не указывает на правильный путь включения для ваших заголовков libxslt.Найдите, куда бинарный установщик поместил их в вашу систему, и затем взломайте ваш Makefile, чтобы указать, где они находятся. Или переустановите libxml (убедитесь, что у вас есть версия 'dev', которая должна включать заголовки) в месте, где Makefileищет его включить реж.Это должно исправить вашу проблему.

...