Próbuję skompilować mój program w C w Ubuntu 9.10 (gcc 4.4.1).
Otrzymuję ten błąd:
Rect.cpp:344: error: ‘memset’ was not declared in this scope
Ale problem polega na tym, że już umieściłem w moim pliku cpp:
#include <stdio.h>
#include <stdlib.h>
I ten sam program dobrze się kompiluje pod Ubuntu 8.04 (gcc 4.2.4).
Proszę, powiedz mi, czego mi brakuje.
<string.h>
jest#include
pośrednio d przez jakiś inny#include
nagłówek d w twojej starszej konfiguracji gcc / Ubuntu.Odpowiedzi:
Powinieneś dołączyć
<string.h>
(lub jego odpowiednik w C ++<cstring>
).źródło
Kiedykolwiek napotkasz taki problem, po prostu przejdź do strony podręcznika dla danej funkcji, a dowiesz się, jakiego nagłówka brakuje, np.
Zauważ, że dla C ++ lepiej jest używać odpowiednich równoważnych nagłówków C ++,
<cstring>
/<cstdio>
/<cstdlib>
/ etc, zamiast<string.h>
/<stdio.h>
/<stdlib.h>
/ etc w C.źródło