Artikel-ID: 000085005 Inhaltstyp: Fehlerbehebung Letzte Überprüfung: 16.10.2012

Warum erhalte ich den Fehler "undefinierten Verweis auf "getc", wenn ich versuche, alt_getchar() mit Nios II zu verwenden?

Umgebung

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Beschreibung

Dieses Problem kann angezeigt werden, wenn sowohl die Option "Enable Small C library" (Kleine C-Bibliothek aktivieren) aktiviert ist als auch die Option "Enable Lightweight Device Driver API" (Einfache Gerätetreiber-API aktivieren) nicht markiert ist.

Die Option "Enable Small C library" (Kleine C-Bibliothek aktivieren) hat den Effekt, dass eine Reihe von Funktionen aus dem BSP (Nios II Board Support Package) entfernt werden, einschließlich der STDIN-Routinen.  Diese Funktionen umfassen die Routine getchar(), die getc() aufruft.

Die "Enable Lightweight Device Driver API" optimiert die Funktionen alt_getchar(), alt_putstr(), alt_printf() und alt_putchar().  Ohne diese Option aktiviert, rufen diese Funktionen ihre C-Bibliotheksäquivalente getchar(), putstr(), printf() und putchar() direkt auf.

Daher ist alt_getchar() mit aktivierter Option "Enable Small C library" (Kleine C-Bibliothek aktivieren) und "Enable Lightweight Device Driver API" (Einfache Gerätetreiber-API aktivieren) der Getchar()-Funktion zugeordnet, die sich nicht mehr in der Bibliothek befindet.

Um die alt_getchar-Funktion erfolgreich verwenden zu können, muss der Benutzer in den BSP-Einstellungen entweder die Option "Enable Small C library" (Kleine C-Bibliothek aktivieren) deaktivieren oder die Option "Enable Lightweight Device Driver API" (Einfache Gerätetreiber-API aktivieren) aktivieren.

Lösung

Dieses Problem kann angezeigt werden, wenn sowohl die Option "Enable Small C library" (Kleine C-Bibliothek aktivieren) aktiviert ist als auch die Option "Enable Lightweight Device Driver API" (Einfache Gerätetreiber-API aktivieren) nicht markiert ist.

Die Option "Enable Small C library" (Kleine C-Bibliothek aktivieren) hat den Effekt, dass eine Reihe von Funktionen aus dem BSP (Nios II Board Support Package) entfernt werden, einschließlich der STDIN-Routinen.  Diese Funktionen umfassen die Routine getchar(), die getc() aufruft.

Die "Enable Lightweight Device Driver API" optimiert die Funktionen alt_getchar(), alt_putstr(), alt_printf() und alt_putchar().  Ohne diese Option aktiviert, rufen diese Funktionen ihre C-Bibliotheksäquivalente getchar(), putstr(), printf() und putchar() direkt auf.

Daher ist alt_getchar() mit aktivierter Option "Enable Small C library" (Kleine C-Bibliothek aktivieren) und "Enable Lightweight Device Driver API" (Einfache Gerätetreiber-API aktivieren) der Getchar()-Funktion zugeordnet, die sich nicht mehr in der Bibliothek befindet.

Um die alt_getchar-Funktion erfolgreich verwenden zu können, muss der Benutzer in den BSP-Einstellungen entweder die Option "Enable Small C library" (Kleine C-Bibliothek aktivieren) deaktivieren oder die Option "Enable Lightweight Device Driver API" (Einfache Gerätetreiber-API aktivieren) aktivieren.

Zugehörige Produkte

Dieser Artikel bezieht sich auf 1 Produkte

Intel® programmierbare Geräte

Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.