Ich versuche mein C-Programm in Ubuntu 9.10 (gcc 4.4.1) zu kompilieren.
Ich erhalte diesen Fehler:
Rect.cpp:344: error: ‘memset’ was not declared in this scope
Das Problem ist jedoch, dass ich bereits in meine CPP-Datei aufgenommen habe:
#include <stdio.h>
#include <stdlib.h>
Und das gleiche Programm kompiliert gut unter Ubuntu 8.04 (gcc 4.2.4).
Bitte sag mir, was ich vermisse.
<string.h>
wird wird#include
über einen anderen indirekt d#include
d - Header in Ihrem älteren gcc / Ubuntu - Konfiguration.Antworten:
Sie sollten einschließen
<string.h>
(oder das C ++ - Äquivalent<cstring>
).quelle
Wenn Sie ein solches Problem haben, rufen Sie einfach die Manpage für die betreffende Funktion auf und erfahren Sie, welcher Header Ihnen fehlt, z
Beachten Sie, dass es für C ++ im Allgemeinen vorzuziehen ist, die richtigen äquivalenten C ++ - Header
<cstring>
/<cstdio>
/<cstdlib>
/ etc anstelle von Cs<string.h>
/<stdio.h>
/<stdlib.h>
/ etc. Zu verwenden.quelle