1

perl モジュールをインストールする必要がありますXML-LibXML。以下のようにダウンロードしてインストールしようとしました。リンクできないと書いてありlibxml2ます。次に、libxml2 をダウンロードしてインストールし、再試行しましたが、成功しませんでした。
それで、このインストールされたlibxml2をリンクする方法を知りましょう。
libxml2 インストール ディレクトリ (/install/others/lib) をファイル "/etc/ld.so.conf" に追加し、ldconfig を実行してダイナミック ローダー キャッシュを更新する必要がありますか?

bash-3.2$ wget http://search.cpan.org/CPAN/authors/id/S/SH/SHLOMIF/XML-LibXML-2.0019.tar.gz
bash-3.2$ tar zxvf XML-LibXML-2.0019.tar.gz
bash-3.2$ pwd
/install/others/XML-LibXML-2.0019

bash-3.2$ perl Makefile.PL LIBS='-L/install/others/lib' INC='-I/install/others/include'
enable native perl UTF8
Checking for ability to link against xml2...no
Checking for ability to link against libxml2...libxml2, zlib, and/or the Math library (-lm) have not been found.
Try setting LIBS and INC values on the command line
Or get libxml2 from
http://xmlsoft.org/
If you install via RPMs, make sure you also install the -devel
RPMs, as this is where the headers (.h files) are.

Also, you may try to run perl Makefile.PL with the DEBUG=1 parameter
to see the exact reason why the detection of libxml2 installation
failed or why Makefile.PL was not able to compile a test program.
bash-3.2$
bash-3.2$
bash-3.2$
bash-3.2$
bash-3.2$ perl Makefile.PL PREFIX=/install/others  LIBS='-L/install/others/lib' INC='-I/install/others/include'
enable native perl UTF8
Checking for ability to link against xml2...no
Checking for ability to link against libxml2...libxml2, zlib, and/or the Math library (-lm) have not been found.
Try setting LIBS and INC values on the command line
Or get libxml2 from
http://xmlsoft.org/
If you install via RPMs, make sure you also install the -devel
RPMs, as this is where the headers (.h files) are.

Also, you may try to run perl Makefile.PL with the DEBUG=1 parameter
to see the exact reason why the detection of libxml2 installation
failed or why Makefile.PL was not able to compile a test program.
bash-3.2$

以下は DEBUG=1 追加出力です

bash-3.2$ pwd
/install/others/XML-LibXML-1.31
bash-3.2$ perl Makefile.PL LIBS='-L/install/others/lib -lxml2 -lz -lm' INC='-I/install/others/include/libxml2' DEBUG=1
running xml2-config... xml2-config --version
failed
*** backticks call to 'xml2-config --version' failed at Makefile.PL line 212.
using fallback values for LIBS and INC
options:
  LIBS='-L/usr/local/lib -L/usr/lib -lxml2 -lz -lm'
  INC='-I/usr/local/include -I/usr/include'
If this is wrong, Re-run as:
  $ /usr/bin/perl Makefile.PL LIBS='-L/path/to/lib' INC='-I/path/to/include'

looking for -lxml2... /usr/bin/perl Makefile.PL 'INC=-I/usr/local/include -I/usr/include' 'LIBS=-L/usr/local/lib -L/usr/lib -lxml2 -lz -lm'
INC = -I/usr/local/include -I/usr/include
LIBS = -L/usr/local/lib -L/usr/lib -lxml2 -lz -lm
Writing Makefile for Conftest
make test 'OTHERLDFLAGS=-lxml2'
cp Conftest.pm blib/lib/Conftest.pm
/usr/bin/perl /usr/lib/perl5/5.8.8/ExtUtils/xsubpp  -typemap /usr/lib/perl5/5.8.8/ExtUtils/typemap  Conftest.xs > Conftest.xsc && mv Conftest.xsc Conftest.c
gcc -c  -I/usr/local/include -I/usr/include -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic   -DVERSION=\"1\" -DXS_VERSION=\"1\" -fPIC "-I/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE"   Conftest.c
Conftest.xs:11: warning: return type defaults to âintâ
Running Mkbootstrap for Conftest ()
chmod 644 Conftest.bs
rm -f blib/arch/auto/Conftest/Conftest.so
gcc  -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic Conftest.o -lxml2 -o blib/arch/auto/Conftest/Conftest.so       \
           -L/usr/local/lib -L/usr/lib -lxml2 -lz -lm   \

/usr/bin/ld: cannot find -lxml2
collect2: ld returned 1 exit status
make: *** [blib/arch/auto/Conftest/Conftest.so] Error 1
system call to 'make test 'OTHERLDFLAGS=-lxml2'' failed at Makefile.PL line 188.
no
libxml2 not found
Try setting LIBS and INC values on the command line
Or get libxml2 from
  http://www.libxml.org/
If you install via RPMs, make sure you also install the -devel
RPMs, as this is where the headers (.h files) are.
bash-3.2$

それは私のローカルディレクトリを探しているのではなく、探しています

INC = -I/usr/local/include -I/usr/include
LIBS = -L/usr/local/lib -L/usr/lib -lxml2 -lz -lm

注: root アクセス権がなく、オペレーティング システムは Linux RedHat です。

前もって感謝します

4

3 に答える 3

1

ヘッダーファイルが必要です。

これらは libxml ソース配布の一部として入手できます (例:ここ) 。ディレクトリをファイルシステムのどこかに抽出し、そのlibxml.../includeディレクトリを-Imake 呼び出しのフラグに含めます。エラー メッセージは、システムで zlib と libm が見つからなかったことも示しています。それらは非標準の/usr/lib...ディレクトリにある可能性がありますが、存在します。見つかったライブラリを-Lmake 呼び出しのオプションに含めます。

于 2013-07-10T16:19:54.547 に答える
0

Alien::LibXML をインストールするか、Linux ディストリビューション用の LibXML バイナリをダウンロードします。

"export XMLPREFIX=$YOURLIBXMLPREFIX" $$YOURLIBXMLPREFIX/bin/xml2-config は問題ありません。

次に、cpan で XML::LibXML をインストールします。

于 2015-04-03T05:49:15.190 に答える
0

root アクセス権がない場合は、perlbrew を使用してみてください: http://perlbrew.pl/

その後、簡単に Alien::XML::LibXML ( http://corion.net/perl-dev/Alien-XML-LibXML.html )をインストールできます。

これにより、ローカル Perl 用にのみ libxml がインストールされます。

この後、XML-LibXML が正常にインストールされます。

手順:

1) perlbrew でローカル perl をインストールして、システム perl をクリーンに保つ

2) perlbrew の cpanm で Alien::XML::LibXML をインストールします。

3) XML-LibXML をインストールする

于 2013-07-10T15:56:31.770 に答える