Lowlevel

Lowlevel => Lowlevel-Coding => Thema gestartet von: RedEagle am 16. August 2007, 11:56

Titel: memcpy wird nicht erkannt
Beitrag von: RedEagle am 16. August 2007, 11:56
Hi
Ich (bzw mein compiler) braucht die memcpy-funktion.
Soweit kein Problem.

Aber: sie wird nicht anerkannt.
Also ich habe eine Funktion memcpy aber die wird ja vom compiler in _Z6memcpy*irgendwas* umbenannt. Ist dass der grund? wenn ja, wie verhindere ich dass??

ps.: der Fehler:
rr.cpp:(.text+0xf2): undefined reference ro `memcpy'

(Es wird eine funktion aufgerufen, die eine Struktur zurückgibt)
Titel: Re: memcpy wird nicht erkannt
Beitrag von: bluecode am 16. August 2007, 13:55
So wie es aussieht benutzt du einen C++ Compiler und der macht etwas namens "name mangling". Um dieses name mangling für eine bestimmte Funktion auszuschalten musst du bei der Deklaration ein extern "C" voranstellen, also:

extern "C" void memcpy(void *, const void *, size_t);
Titel: Re: memcpy wird nicht erkannt
Beitrag von: RedEagle am 16. August 2007, 14:32
Jo, Danke, genau das suchte ich ;)