对于XSLT处理,我尝试使用XML::LibXSLT。我在win32上有ActiveState Perl。据我所知,在调用"perl Makefile.PL"之前,我需要首先安装libxslt。
win32上libxslt的,似乎二进制文件已经可用,我们可以使用它(所以不需要编译和构建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:PerllibCORE" -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
你能告诉我我缺少什么配置/设置吗
我不使用zlatkovic二进制文件,但原理是一样的,要么将.a/.h文件复制到有其他.a/.h文件的地方,要么告诉Makefile.PL在哪里找到它们。通过编辑Makefile.PL
$config{LIBS}='-l....liblibxml2.a -l....liblibiconv.a';
$config{INC}='-I....includelibxml2';
$config{DEFINE} =' -DLIBXML_STATIC -static-libgcc ';
WriteMakefile(...
该警告令人担忧(我想升级您的XML::LibXML模块),但真正的问题是Makefile没有指向正确的包含路径为您的libxslt头。找到二进制安装程序将它们放在系统上的位置,然后破解Makefile以指向它们的位置。或者重新安装libxml(确保你有'dev'版本,应该包括头文件)在一个地方,Makefile正在寻找它的包含目录。