在x86_64架构中以32位模式进行编译

时间:2011-10-07 06:58:32

标签: perl gcc xml-libxml

我在具有x86_64架构的机器上运行,32位编译的Perl 5.8.4。当我尝试安装XML :: LibXML时,我得到以下调试消息:

... ...

# Running under perl version 5.008004 for linux

# Current time local: Fri Oct  7 08:43:24 2011
# Current time GMT:   Fri Oct  7 06:43:24 2011
# Using Test.pm version 1.25
Can't load 'blib/arch/auto/Conftest/Conftest.so' for module Conftest: blib/arch/auto/Conftest/Conftest.so: wrong ELF class: ELFCLASS64 at /app/perl/.sys/i386_linux24/5.8.4/lib/5.8.4/i686-lin
ux-thread-multi/DynaLoader.pm line 230.
 at test.pl line 2
Compilation failed in require at test.pl line 2.
BEGIN failed--compilation aborted at test.pl line 2.
not ok 1
# Failed test 1 in test.pl at line 1
#  test.pl line 1 is: use Test; BEGIN { plan tests => 1; } END { ok($loaded) }
make: *** [test_dynamic] Error 255
system call to 'make test 'OTHERLDFLAGS='' failed at Makefile.PL line 495.
no
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.

所以问题是,如何在.cpan属性(或Makefile.PL)中描述我想在64位架构中以32位模式编译XML :: LibXML?

B.R CH

1 个答案:

答案 0 :(得分:1)

  1. 首先,检查系统上是否安装了libxml2-devel和zlib-devel软件包,如下所示:

    $ rpm -ql libxml2-devel

    $ rpm -ql zlib-devel

  2. 如果未安装任何软件包,请安装缺少的软件包,如下所示:

    $ yum install libxml2-devel

    $ yum install zlib-devel

  3. 使用CPAN重新安装XML :: LibXML pacak,如下所示:

    $ cpan

    CPAN>安装XML :: LibXML

  4. 我希望这会有所帮助。 祝你好运!