J'essaye de compiler mon programme C dans Ubuntu 9.10 (gcc 4.4.1).
J'obtiens cette erreur:
Rect.cpp:344: error: ‘memset’ was not declared in this scope
Mais le problème est que j'ai déjà inclus dans mon fichier cpp:
#include <stdio.h>
#include <stdlib.h>
Et le même programme se compile correctement sous Ubuntu 8.04 (gcc 4.2.4).
Veuillez me dire ce qui me manque.
<string.h>
est#include
indirectement via un autre en-#include
tête d dans votre ancienne configuration gcc / Ubuntu.Réponses:
Vous devez inclure
<string.h>
(ou son équivalent C ++<cstring>
).la source
Chaque fois que vous rencontrez un problème comme celui-ci, accédez simplement à la page de manuel de la fonction en question et elle vous indiquera quel en-tête vous manque, par exemple
Notez que pour C ++, il est généralement préférable d'utiliser les en-têtes C ++ équivalents appropriés,
<cstring>
/<cstdio>
/<cstdlib>
/ etc, plutôt que C's<string.h>
/<stdio.h>
/<stdlib.h>
/ etc.la source