Ich arbeite an dem Os161-Projekt. Ich erstelle eine Datei, die das Array.h in src/kern/include enthält. Wenn ich kompiliere, hatte ich den Fehler so: ./../include/array.h:85: error: expected '=', ',', ';', 'asm' oder 'Attribut' vorher 'unsigned' ../../include/array.h:91: Fehler: erwartet '=', ' ' ';', 'ASM' oder' Attribut' vor 'VOID'OS161 erwartete '=', ',', ';', 'asm' oder '__attribute__' vor dem Fehler
der Code wie:
#ifndef ARRAYINLINE
#define ARRAYINLINE INLINE
#endif
ARRAYINLINE unsigned --------------line 85 error
array_num(const struct array *a)
{
return a->num;
}
ARRAYINLINE void * --------------line 91 error
array_get(const struct array *a, unsigned index)
{
ARRAYASSERT(index < a->num);
return a->v[index];
}
und diese Art von Fehlern in jeder Zeile hat so etwas wie INLINE oder ARRAYINLINE passiert ist. Diese array.h Datei wird zur Verfügung gestellt und ich habe keine Änderung daran vorgenommen. Wirklich kann nicht herausfinden, warum.
Fehler sagt, dass der Compiler ist nicht in der Lage zu verstehen, was 'INLINE' ist. Vielleicht ist '#define ARRAYINLINE INLINE'' 'define ARRAYINLINE inline' und fordert den Compiler auf, die Funktionen' inline' anzuordnen? Wenn nicht, wird INLINE beim Kompilieren definiert? –
Versuchen Sie, Programmtext nach Präprozessor zu bekommen und zeigen Sie es. Z.B. Für GCC ist die Option "-E". Die wahrscheinlichste Variante ist keine Definition von INLINE oder einer fremden. – Netch
Können Sie das const struct Array bitte hinzufügen? Und ein bisschen mehr Code auch. Welchen Befehl kompilieren Sie? – Patapoom