1

我正在通过 CPAN shell 安装 MQSeries-1.33 Perl 模块,但它失败了。我正在使用 Windows 7 和 Strawberry perl v5.16.2。

我还安装了 IBM Websphere MQ v7.5。

模块在制作时失败。下面是错误。

Cannot add determine value for 'MQENC_TNS', unknown constant 'MQENC_INTEGER_NORMAL '
Cannot add determine value for 'MQGMO_BROWSE_HANDLE', unknown constant 'MQGMO_MARK_BROWSE_HANDLE '
Cannot add determine value for 'MQENC_NORMAL', unknown constant 'MQENC_INTEGER_NORMAL '
Cannot add determine value for 'MQENC_S390', unknown constant 'MQENC_INTEGER_NORMAL '
Cannot add determine value for 'MQENC_REVERSED', unknown constant 'MQENC_INTEGER_REVERSED '
Cannot add determine value for 'MQGMO_BROWSE_CO_OP', unknown constant 'MQGMO_MARK_BROWSE_CO_OP '
typemap.PL: warning: type MQIEP.MQHMSG (MQINT64) not supported
C:\strawberry\perl\bin\perl.exe C:\strawberry\perl\lib\ExtUtils\xsubpp  -typemap C:\strawberry\perl\lib\ExtUtils\typemap -typemap typemap  MQSeries.xs > MQSeries.xsc && C:\strawberry\perl\bin\perl.exe
 -MExtUtils::Command -e mv -- MQSeries.xsc MQSeries.c
gcc -c  -I"C:/Mqm/Tools/C/include" -I../include         -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields -s -O2     -DVERSION=\"1.
33\"    -DXS_VERSION=\"1.33\"  "-IC:\strawberry\perl\lib\CORE"   MQSeries.c
In file included from MQSeries.xs:66:0:
C:/Mqm/Tools/C/include/cmqc.h:3584:2: error: unknown type name 'int64'
C:/Mqm/Tools/C/include/cmqc.h:3585:25: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'MQUINT64'
C:/Mqm/Tools/C/include/cmqc.h:3610:2: error: unknown type name 'MQUINT64'
dmake:  Error code 129, while making 'MQSeries.o'
dmake.exe:  Error code 255, while making 'subdirs'
  MQSERIES/MQSeries-1.33.tar.gz
  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 'MQSeries'.
Failed during this command:
 MQSERIES/MQSeries-1.33.tar.gz                : make NO
4

1 回答 1

1

首先,您为什么不下载并使用 Windows 的预构建 MQSeries v1.33 Perl 二进制文件?

gcc -c -I"C:/Mqm/Tools/C/include" -I../include

IBM 不支持 Windows 上的 GCC(32 位或 64 位)。您需要使用受支持的编译器,即 MS Visual C++。

C:/Mqm/Tools/C/include/cmqc.h:3584:2: 错误: 未知类型名称'int64'

一个不受支持的解决方法是在代码的最顶部添加以下定义:

#define _int64 __int64

这会让您看到编译错误,但请记住,IBM 不支持它。

于 2012-12-13T18:33:45.477 回答