2012-09-20 170 views
0

這真的很奇怪,有人可以解釋爲什麼GCC在安裝時無法找到包含文件XML::LibXML爲什麼不能安裝XML :: LibXML?

> cpan PAJAS/XML-LibXML-1.70.tar.gz 
... 
C:/CPANTE~1/PERL51~1.0_6/site/bin/gcc.exe -c -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DWIN64 -DCONSERVATIVE -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DHASATTRIBUTE -fno-strict-aliasing -mms-bitfields -O2 -DVERSION=\"1.70\" -DXS_VERSION=\"1.70\" "-IC:\CPANTesters\Perl5.16.0_64\lib\CORE" -DHAVE_UTF8 -DHAVE_BLANK LibXML.c 
LibXML.xs:34:31: fatal error: libxml/xmlversion.h: No such file or directory 

> IF EXIST %INCLUDE%\libxml\xmlversion.h ECHO Cogito ergo sum 
Cogito ergo sum 

這是帶有MinGW64的ActiveState 5.16.0 64位。

我決定放棄使用Zlatkovic Win32二進制文件ftp://ftp.zlatkovic.com/pub/libxml/,並使用可用於http://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/的64位二進制文​​件。

上面的問題是要解壓模塊解決,執行以下命令:

> perl Makefile.PL INC=-IC:\CPANTesters\bin\gnome-deps-win64\include LIBS=-LC:\CPANTesters\bin\gnome-deps-win64\lib 
> dmake 

但問題從運行的dmake測試出現因爲Perl在所有測試文件崩潰。

C:\CPANTesters\Perl5.16.0_64\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib\lib', 'blib\arch')" t/*.t 
t/01basic.t ......................... Dubious, test returned 38 (wstat 9728, 0x2600) 
Failed 3/3 subtests 

任何想法如何調試?

+0

您是否需要將'-I%INCLUDE%'傳遞給GCC? –

回答

3

XML-LibXMLlibxml2的Perl綁定,但它不包含libxml2的副本(其中libxml/xmlversion.h是其中的一部分)。您必須單獨安裝,並確保Perl和gcc可以找到它。 INCLUDE不是environment variable used by gcc。它使用CPATHC_INCLUDE_PATH

我貢獻了instructions for installing XML-LibXML from source on Microsoft Windows。你試過跟着他們嗎?

在Windows上獲取XML-LibXML的最簡單方法是安裝Strawberry Perl。它包含在XML-LibXML中。

+0

我曾嘗試使用C_INCLUDE_PATH並且錯誤消息已消失,但我遇到了其他問題。由於標題更改爲「爲什麼不能安裝XML :: LibXML?」,我將展開文章以充分反映整個實驗。 – nyet