2011-11-07 83 views
0

對於XSLT處理,我嘗試使用XML :: LibXSLT。我在win32上有ActiveState Perl。 據我所知,我需要在調用'perl Makefile.PL'之前先安裝libxslt。在ActiveState Perl 5.8上安裝XML :: LibXSLT

對於win32上的libxslt,似乎二進制文件已經可用,我們可以使用它(因此不需要編譯和構建libxslt)。它可在 ftp://ftp.zlatkovic.com/libxml/

所以,我下載...的libxslt與其他依賴可真快 - 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 

你能幫我什麼配置/設置我失蹤。

+0

對於編譯做到這一點,你需要比二進制文件更。你也需要頭文件。 – choroba

+0

是的,我傳遞了這樣的細節 - 「perl Makefile.PL INC =」f:\ temp \ LibXSLT \ include「LIBS =」f:\ temp \ LibXSLT \ lib「',這包括所有相應的頭文件和lib文件的xslt,libxml,zlib和icnov – rpg

回答

0

我不使用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(... 
+0

這對我有效。我想念幾個頭文件,我手動複製,它工作:)謝謝 – rpg

0

該警告令人擔憂(我想升級您的XML :: LibXML模塊),但真正的問題是Makefile沒有指向您的libxslt頭文件的正確包含路徑。找到二進制安裝程序將它們放到系統中的位置,然後將您的Makefile指向它們所在的位置。或者重新安裝libxml(確保您具有包含頭文件的'dev'版本)放在Makefile正在尋找它的包括目錄。這應該可以解決你的問題。

相關問題