Thread Probleme mit Perl XS (7 answers)
Opened by MechaTikal at 2007-11-26 12:24

MechaTikal
 2007-11-26 12:24
#103000 #103000
User since
2007-10-10
20 Artikel
BenutzerIn
[default_avatar]
Ich bin mir nicht sicher, in welchen Bereich meine Frage kommt, aber meiner Meinung nach passt sie besser hier rein.
Es geht um Perl XS. Ich habe zum Selbststudium das Buch Extended and Embedded Perl bekommen und arbeite das durch, habe aber das Gefühl, manche Beispiele funktionieren nicht.
In meiner XS-Datei steht folgende Funktion:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
char *
strconcat(str1, str2, outstr)
char* str1
char* str2
char* outstr = NO_INIT
PREINIT:
STRLEN length;
CODE:
length = strlen(str1) + strlen (str2) +1;
New(0, outstr, length, char);
RETVAL = strconcat(str1, str2, outstr);
OUTPUT:
outstr
RETVAL
CLEANUP:
Safefree( outstr );


Wenn ich jetzt mit "make" neu kompiliere und das Skript laufen lasse, erhalte ich den Fehler:
Code: (dl )
/usr/bin/perl: symbol lookup error: /home/Michaela/Perl XS/Mytest/blib/arch/auto/Mytest/Mytest.so: undefined symbol: strconcat
und die Warnung:
Code: (dl )
1
2
3
Mytest.xs: In Funktion »XS_Mytest_strconcat«:
Mytest.xs:45: Warnung: Implizite Deklaration der Funktion »strconcat«
Mytest.xs:45: Warnung: Zuweisung erzeugt Zeiger von Ganzzahl ohne Typkonvertierung

Kennt die Datei strconcat nicht oder was soll das Problem sein? <string.h> ist eingebunden, andere Funktionen wie simples Multiplizieren klappen aber.

View full thread Probleme mit Perl XS