当我尝试安装Digest :: SHA时,为什么会出现“64位模式下不允许XCOFF32目标文件?”

时间:2016-02-01 15:53:17

标签: perl unix 32bit-64bit aix

我正在尝试安装Digest::SHA v5.95,但是我收到以下错误:

  

64位模式下不允许使用XCOFF32目标文件

我使用的是UNIX AIX Version 7.1和64位perl 5.22.0。 perl -V给出:

Platform:
osname=aix, osvers=7.1.0.0, archname=aix
uname='aix 1 7 00f64d144c00 '
config_args='-des -Dprefix=/home/snemmal/perl'
hint=recommended, useposix=true, d_sigaction=define
useithreads=undef, usemultiplicity=undef
use64bitint=undef, use64bitall=undef, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc -q32', ccflags ='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -        qmaxmem=-1 -qnoansialias -qlanglvl=extc99 -DUSE_NATIVE_DLOPEN -q32 -D_LARGE_FILES',
optimize='-O',
cppflags='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias -qlanglvl=extc99 -DUSE_NATIVE_DLOPEN'
ccversion='9.0.0.19', gccversion='', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321, doublekind=4
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8, longdblkind=0
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='ld', ldflags =' -brtl -bdynamic -b32 -bmaxdata:0x80000000'
libpth=/lib /usr/lib /usr/ccs/lib
libs=-lpthread -lbind -lnsl -ldbm -ldl -lld -lm -lcrypt -lc
perllibs=-lpthread -lbind -lnsl -ldl -lld -lm -lcrypt -lc
libc=/lib/libc.a, so=a, useshrplib=false, libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_aix.xs, dlext=so, d_dlsymun=undef, ccdlflags='  -bE:/home/snemmal/perl/lib/5.22.0/aix/CORE/perl.exp'
cccdlflags=' ', lddlflags='  -bhalt:4 -G -bI:$(PERL_INC)/perl.exp -bE:$(BASEEXT).exp -bnoentry -lc -lm '

我试着像这样建造:

  1. search.cpan.org/~mshelor/Digest-SHA-5.95/lib/Digest/SHA.pm

  2. 下载并解压缩.gz文件
  3. perl Makefile.PL(成功运行)

  4. make(失败,“64位模式下不允许使用”XCOFF32目标文件“)

  5. 以下是make的完整输出:

      

    Skip blib / lib / Digest / SHA.pm(未更改)运行Mkbootstrap for Digest :: SHA()chmod 644“SHA.bs”cc -q32 -c -I。 -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem = -1 -qnoansialias -qlanglvl = extc99 -DUSE_NATIVE_DLOPEN -q32 -D_LARGE_FILES -O -DVERSION = \“5.95 \”-DXS_VERSION = \“5.95 \”“-I / home / snemmal / perl /lib/5.22.0/aix/CORE“SHA.c

         

    rm -f blib / arch / auto / Digest / SHA / SHA.so ld -bhalt:4 -G -bI:/home/snemmal/perl/lib/5.22.0/aix/CORE/perl.exp - bE:SHA.exp -bnoentry -lc -lm SHA.o -o blib / arch / auto / Digest / SHA / SHA.so ld:0711-738错误:输入文件SHA.o:64中不允许使用XCOFF32目标文件位模式。 make:1254-004最后一个命令的错误代码是8. Stop。

    看起来模块中的一个目标文件是32位模式,而我的perl是64位模式。如何成功安装此模块?

1 个答案:

答案 0 :(得分:0)

您尝试在32位“ cc -q32”中进行编译,并尝试使用-q64标志进行构建。