Thread XS Modul in C++ nicht übersetzbar (16 answers)
Opened by sesth at 2005-02-01 13:50

sesth
 2005-02-01 13:50
#51473 #51473
User since
2005-02-01
181 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich verusche unter Windows 2000 mit ActiveState Perl 5.8.6 mit XS eine C++ Klasse einzubinden. Leider lassen sich die Header-Files von Perl nicht übersetzen. Vielleicht kann mir hier jemand helfen.

Unter Perl and C++ hatte ich ein entsprechendes Beispiel gefunden. Für Visual C++ 6.0 habe ich Makefile.PL dann noch etwas angepasst:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
WriteMakefile(
NAME => 'MyPackage',
VERSION_FROM => 'lib/MyPackage.pm', # finds $VERSION
PREREQ_PM => {}, # e.g., Module::Name => 1.1
($] >= 5.005 ? ## Add these new keywords supported since 5.005
(ABSTRACT_FROM => 'lib/MyPackage.pm', # retrieve abstract from module
AUTHOR => 'A. U. Thor <a.u.thor@a.galaxy.far.far.away>') : ()),
LIBS => [''], # e.g., '-lm'
DEFINE => '', # e.g., '-DHAVE_SOMETHING'
INC => '-I.', # e.g., '-I. -I/usr/include/other'
CCFLAGS => '-TP',
XSOPT => '-C++',
TYPEMAPS => ['perlobject.map' ],
# Un-comment this if you add C files to link with later:
# OBJECT => '$(O_FILES)', # link all the C files too
);


Die Header-Files von Perl erzeugen aber Fehler, da sie im C++-Mode nicht übersetzbar sind. Auch ein Klammern mit "extern C {}" hilft da nicht.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
    cl -c  -I.  -TP -MD -Zi -DNDEBUG -O1    -DVERSION=\"0.01\"  -DXS_VERSION=\"0.01\"  "-ID:\Perl\lib\CORE"   MyPackage.c
MyPackage.c
D:\Perl\lib\CORE\win32.h(314) : error C2061: syntax error : identifier 'Stat_t'
D:\Perl\lib\CORE\win32.h(413) : error C2143: syntax error : missing ',' before '*'
D:\Perl\lib\CORE\win32.h(413) : error C2059: syntax error : '*'
D:\Perl\lib\CORE\perlio.h(105) : error C2143: syntax error : missing ',' before '*'
D:\Perl\lib\CORE\perlio.h(105) : error C2059: syntax error : '*'
D:\Perl\lib\CORE\perlio.h(106) : error C2143: syntax error : missing ',' before '*'
D:\Perl\lib\CORE\perlio.h(106) : error C2059: syntax error : '*'
D:\Perl\lib\CORE\perlio.h(108) : error C2143: syntax error : missing ',' before '*'
...


Kann mir jemand einen Tipp geben, was ich falsch mache?

Gruß
Thomas
Gruß
Thomas

View full thread XS Modul in C++ nicht übersetzbar