我是Perl新手,開始研究需要某些模塊的項目。其中之一是XML::CanonicalizeXML
似乎無法安裝。XML :: CanonicalizeXML在Windows上安裝Perl包
我正在使用Strawberry Perl和CPAN進行包處理。
我試圖手動編譯從下載的tar.gz文件包,但已經出現了同樣的錯誤,似乎在G ++編譯要存在的:
CPAN.pm: Building S/SJ/SJZASADA/XML-CanonicalizeXML-0.05.tgz
'xml2-config' is not recognized as an internal or external command,
operable program or batch file.
'xml2-config' is not recognized as an internal or external command,
operable program or batch file.
Checking if your kit is complete...
Looks good
'xml2-config' is not recognized as an internal or external command,
operable program or batch file.
'xml2-config' is not recognized as an internal or external command,
operable program or batch file.
MakeMaker (v6.64)
Warning (non-fatal): Target 'dynamic' depends on targets in skipped section 'dyn
amic_lib'
Warning (non-fatal): Target 'static' depends on targets in skipped section 'stat
ic_lib'
Writing Makefile for Mytest2::canon
Writing MYMETA.yml and MYMETA.json
Writing Makefile for XML::CanonicalizeXML
Writing MYMETA.yml and MYMETA.json
cp lib/XML/CanonicalizeXML.pm blib\lib\XML\CanonicalizeXML.pm
AutoSplitting blib\lib\XML\CanonicalizeXML.pm (blib\lib\auto\XML\CanonicalizeXML
)
cd canon && dmake
gcc -c -I. -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -
DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields -s -O2 -DVERSION=\"\"
-DXS_VERSION=\"\" "-IC:\strawberry\perl\lib\CORE" canon.c
ar cr libcanon.a canon.o
rem libcanon.a
C:\strawberry\perl\bin\perl.exe C:\strawberry\perl\lib\ExtUtils\xsubpp -typemap
C:\strawberry\perl\lib\ExtUtils\typemap CanonicalizeXML.xs > CanonicalizeXML.x
sc && C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e mv -- CanonicalizeX
ML.xsc CanonicalizeXML.c
Please specify prototyping behavior for CanonicalizeXML.xs (see perlxs manual)
gcc -c -I. -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -
DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields -s -O2 -DVERSION=\"0.
05\" -DXS_VERSION=\"0.05\" "-IC:\strawberry\perl\lib\CORE" CanonicalizeXML
.c
CanonicalizeXML.xs: In function 'XS_XML__CanonicalizeXML_canonicalize':
CanonicalizeXML.xs:28:17: warning: passing argument 6 of 'canonicalize' from inc
ompatible pointer type [enabled by default]
canon/canon.h:2:12: note: expected 'char *' but argument is of type 'xmlChar **'
Running Mkbootstrap for XML::CanonicalizeXML()
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod -- 644 Canonicalize
XML.bs
C:\strawberry\perl\bin\perl.exe -MExtUtils::Mksymlists \
-e "Mksymlists('NAME'=>\"XML::CanonicalizeXML\", 'DLBASE' => 'CanonicalizeX
ML', 'DL_FUNCS' => { }, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);"
dlltool --def CanonicalizeXML.def --output-exp dll.exp
g++ -o blib\arch\auto\XML\CanonicalizeXML\CanonicalizeXML.dll -Wl,--base-file -W
l,dll.base -mdll -s -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib" Cano
nicalizeXML.o canon/libcanon.a C:\strawberry\perl\lib\CORE\libperl516.a -lmoldn
ame -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole
32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbc
cp32 -lcomctl32 dll.exp
CanonicalizeXML.o:CanonicalizeXML.c:(.text+0x118): undefined reference to `xmlIn
itParser'
CanonicalizeXML.o:CanonicalizeXML.c:(.text+0x15c): undefined reference to `xmlSt
rlen'
CanonicalizeXML.o:CanonicalizeXML.c:(.text+0x189): undefined reference to `_imp_
_xmlFree'
CanonicalizeXML.o:CanonicalizeXML.c:(.text+0x190): undefined reference to `xmlCl
eanupParser'
canon/libcanon.a(canon.o):canon.c:(.text+0x27): undefined reference to `xmlStrle
n'
canon/libcanon.a(canon.o):canon.c:(.text+0x35): undefined reference to `_imp__xm
lMalloc'
canon/libcanon.a(canon.o):canon.c:(.text+0xb3): undefined reference to `xmlParse
Memory'
canon/libcanon.a(canon.o):canon.c:(.text+0xc4): undefined reference to `__xmlLoa
dExtDtdDefaultValue'
canon/libcanon.a(canon.o):canon.c:(.text+0xd6): undefined reference to `xmlSubst
ituteEntitiesDefault'
canon/libcanon.a(canon.o):canon.c:(.text+0xf2): undefined reference to `xmlParse
Memory'
canon/libcanon.a(canon.o):canon.c:(.text+0x104): undefined reference to `xmlDocG
etRootElement'
canon/libcanon.a(canon.o):canon.c:(.text+0x13a): undefined reference to `xmlStrE
qual'
canon/libcanon.a(canon.o):canon.c:(.text+0x146): undefined reference to `xmlNode
GetContent'
canon/libcanon.a(canon.o):canon.c:(.text+0x15e): undefined reference to `xmlXPat
hNewContext'
canon/libcanon.a(canon.o):canon.c:(.text+0x194): undefined reference to `xmlXPat
hRegisterNs'
canon/libcanon.a(canon.o):canon.c:(.text+0x1ca): undefined reference to `_imp__x
mlFree'
canon/libcanon.a(canon.o):canon.c:(.text+0x1d4): undefined reference to `xmlXPat
hFreeContext'
canon/libcanon.a(canon.o):canon.c:(.text+0x1dc): undefined reference to `xmlFree
Doc'
canon/libcanon.a(canon.o):canon.c:(.text+0x1e4): undefined reference to `_imp__x
mlRealloc'
canon/libcanon.a(canon.o):canon.c:(.text+0x238): undefined reference to `xmlFree
Doc'
canon/libcanon.a(canon.o):canon.c:(.text+0x27d): undefined reference to `xmlXPat
hEvalExpression'
canon/libcanon.a(canon.o):canon.c:(.text+0x28d): undefined reference to `_imp__x
mlFree'
canon/libcanon.a(canon.o):canon.c:(.text+0x2a2): undefined reference to `xmlXPat
hFreeContext'
canon/libcanon.a(canon.o):canon.c:(.text+0x2aa): undefined reference to `xmlFree
Doc'
canon/libcanon.a(canon.o):canon.c:(.text+0x2db): undefined reference to `xmlC14N
DocDumpMemory'
canon/libcanon.a(canon.o):canon.c:(.text+0x2e7): undefined reference to `xmlXPat
hFreeObject'
canon/libcanon.a(canon.o):canon.c:(.text+0x2f3): undefined reference to `xmlFree
Doc'
canon/libcanon.a(canon.o):canon.c:(.text+0x301): undefined reference to `xmlMemo
ryDump'
canon/libcanon.a(canon.o):canon.c:(.text+0x393): undefined reference to `xmlFree
Doc'
canon/libcanon.a(canon.o):canon.c:(.text+0x435): undefined reference to `xmlFree
Doc'
canon/libcanon.a(canon.o):canon.c:(.text+0x46e): undefined reference to `_imp__x
mlFree'
canon/libcanon.a(canon.o):canon.c:(.text+0x478): undefined reference to `xmlFree
Doc'
collect2: ld returned 1 exit status
dmake.exe: Error code 129, while making 'blib\arch\auto\XML\CanonicalizeXML\Can
onicalizeXML.dll'
SJZASADA/XML-CanonicalizeXML-0.05.tgz
C:\strawberry\c\bin\dmake.exe -- NOT OK
Running make test
Can't test without successful make
Running make install
Make had returned bad status, install seems impossible
Stopping: 'install' failed for 'XML::CanonicalizeXML'.
Failed during this command:
SJZASADA/XML-CanonicalizeXML-0.05.tgz : make NO
我已經從http://xmlsoft.org/sources/win32/下載並複製內容到我的草莓/ C /目錄和自述說,不需要任何特殊的安裝。 – 2013-03-18 17:21:34
這是一個奇怪的地方,把它。無論如何,相同的'readme'文件說*「...如果你想運行命令 行提供的工具,你可以,如果你願意,可以將XML :: CanonicalizeXML'bin'子目錄添加到PATH 環境變量「*。你不能將發行版隨機轉儲到磁盤上,並期望它可以正常工作。模塊安裝試圖運行'xml2-config',顯然它找不到它。 – Borodin 2013-03-18 18:07:10
這不是一個隨機的地方,那就是CPAN使用的g ++編譯器,以及其他所有C++庫所在的地方。但我也發現了那裏的xml2-config,這是一個unix shell腳本,並在一些Google搜索後找到它的Windows bat文件版本,現在它可以工作。 – 2013-03-19 07:32:21