Subject: | It doesn't work with VC++ (simple fix) |
Hi again!
Inline::CPP doesn't work with MS VC++.
I managed to fix one problem with tips from this helpful post:
http://www.mail-archive.com/inline@perl.org/msg01336.html
This is the error I got before applying that fix (Add #include <math.h> to the AUTO_INCLUDE source text):
C:\appl\dev\mod_perl\Perl\bin\perl.exe C:\appl\dev\mod_perl\Perl\lib\ExtUtils/xsubpp -typemap C:\appl\dev\mod_perl\Perl\lib\ExtUtils\typemap PerlDecod
e.xs > PerlDecode.xsc && C:\appl\dev\mod_perl\Perl\bin\perl.exe -MExtUtils::Comm
and -e mv PerlDecode.xsc PerlDecode.c
cl -TP -c -IC:/Dokument/XXX/Report/lib -I../../../../../../../Game/Decoder/CPP -I../../../../../../Game/Decoder/CP
P -nologo -Gf -W3 -MD -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FC
RYPT -DNO_HASH_SEED -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DP
ERL_MSVCRT_READFIX -MD -DNDEBUG -O1 -DVERSION=\"0.00\" -DXS_VERSION=\"0.00\"
"-IC:\appl\dev\mod_perl\Perl\lib\CORE" PerlDecode.c
PerlDecode.c
C:\PROGRA~1\MICROS~2\VC98\INCLUDE\math.h(514) : error C2894: templates cannot be declared to have 'C' linkage
This makes it possible for me to use Inline::CPP for my problem, but the tests still don't pass.
The new error is:
t\16varlst....
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
C:\appl\dev\mod_perl\Perl\bin\perl.exe C:\appl\dev\mod_perl\Perl\lib\Ext
Utils/xsubpp -typemap C:\appl\dev\mod_perl\Perl\lib\ExtUtils\typemap -typemap C
:\.cpan\build\Inline-CPP-0.25\grammar\_Inline\build\_16varlst_t_44e4\CPP.map _1
6varlst_t_44e4.xs > _16varlst_t_44e4.xsc && C:\appl\dev\mod_perl\Perl\bin\perl.e
xe -MExtUtils::Command -e mv _16varlst_t_44e4.xsc _16varlst_t_44e4.c
cl -TP -c -IC:/.cpan/build/Inline-CPP-0.25/grammar/t -nologo -Gf -W3 -
MD -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DNO_HASH_SEED
-DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -
MD -DNDEBUG -O1 -DVERSION=\"0.00\" -DXS_VERSION=\"0.00\" "-IC:\appl\dev\mod
_perl\Perl\lib\CORE" _16varlst_t_44e4.c
_16varlst_t_44e4.c
_16varlst_t_44e4.xs(32) : error C2258: illegal pure syntax, must be '= 0'
_16varlst_t_44e4.xs(32) : error C2252: 'aa' : pure specifier can only be specifi
ed for functions
_16varlst_t_44e4.xs(33) : error C2258: illegal pure syntax, must be '= 0'
_16varlst_t_44e4.xs(33) : error C2252: 'bb' : pure specifier can only be specifi
ed for functions
_16varlst_t_44e4.xs(34) : error C2258: illegal pure syntax, must be '= 0'
_16varlst_t_44e4.xs(34) : error C2252: 'cc' : pure specifier can only be specifi
ed for functions
_16varlst_t_44e4.xs(36) : error C2258: illegal pure syntax, must be '= 0'
_16varlst_t_44e4.xs(36) : error C2252: 'dd' : pure specifier can only be specifi
ed for functions
NMAKE : fatal error U1077: 'cl' : return code '0x2'
Stop.
A problem was encountered while attempting to compile and install your Inline
I don't know enough C++ to have any clue how to solve this, but if you could check and see if the first fix doesn't break anything else, I'm sure that would help a few people.
/J