我正在通过CPAN shell安装MQSeries-1.33 Perl模块,但它失败了。我使用的是Windows 7和Strawberry perl v5.16.2。
我也安装了IBM Websphere MQ v7.5。
make时模块失败。 以下是错误。
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
答案 0 :(得分: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不支持它。