Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ActiveState Perl 5.8上安装XML::LibXSLT_Perl_Libxslt - Fatal编程技术网

在ActiveState Perl 5.8上安装XML::LibXSLT

在ActiveState Perl 5.8上安装XML::LibXSLT,perl,libxslt,Perl,Libxslt,对于XSLT处理,我尝试使用XML::LibXSLT。我在win32上使用ActiveState Perl。 据我所知,在调用“perl Makefile.PL”之前,我需要首先安装libxslt 对于win32上的libxslt,二进制文件似乎已经可用,我们可以使用它,因此无需编译和构建libxslt。可以在 因此,我下载了libxslt…zip以及其他依赖项——libxml、iconv和zlib 但是,当我试图使用命令“perl Makefile.PL”编译它时,我收到了错误消息: run

对于XSLT处理,我尝试使用XML::LibXSLT。我在win32上使用ActiveState Perl。 据我所知,在调用“perl Makefile.PL”之前,我需要首先安装libxslt

对于win32上的libxslt,二进制文件似乎已经可用,我们可以使用它,因此无需编译和构建libxslt。可以在

因此,我下载了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

您能告诉我缺少什么配置/设置吗。

这个警告令人担忧,我会考虑升级您的XML::LibXML模块,但真正的问题是生成文件没有指向libxslt头的正确包含路径。找到二进制安装程序在您的系统上放置这些文件的位置,然后对Makefile进行黑客攻击以指向它们所在的位置。。或者重新安装libxml,确保您具有“dev”版本,该版本应在Makefile查找其include dir的位置包含头。这应该可以解决您的问题。

我不使用zlatkovic二进制文件,但原理是一样的,要么将.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(...

对于编译,您需要的不仅仅是二进制文件。您也需要头文件。是的,我正在像这样传递这些详细信息-perl Makefile.PL INC=f:\temp\LibXSLT\include LIBS=f:\temp\LibXSLT\lib'。这包括xslt、libxml、zlib和icnov的所有头文件和lib文件。这对我很有用。我丢失了两个我手动复制的头文件,它工作正常:谢谢