Wie behebe ich den Eclipse CDT-Fehler "Funktion 'isdigit' konnte nicht behoben werden" mit Android NDK?

Ich verwende Eclipse Indigo mit einem gemischten Android / NDK-Projekt. Ich habe C ++ nature hinzugefügt und fast alles funktioniert. Automatische Builds funktionieren; Das heißt, wenn ich eine Datei bearbeite, wird ndk-build aufgerufen und erfolgreich abgeschlossen - keine Erstellungsfehler. Der Mouseover-Code-Assistent funktioniert (in dem kleinen Fenster werden Informationen zur Funktion angezeigt). Wenn ich den Cursor auf eine Include-Zeile setze und F3 drücke, wird eine relevante Header-Datei geöffnet (nicht die, die ich aufgrund meiner Konfiguration erwarten würde, sondern eine relevante - vielleicht ein Hinweis?).

Wenn ich die folgende Zeile in meiner CPP-Datei auswähle, wird $ NDKROOT / platform / android-3 / arch-arm / usr / include / ctype.h geöffnet:

#include <ctype.h>

(isdigit ist in dieser Datei definiert)

Eclipse besteht jedoch darauf, dass isdigit nicht definiert ist. Ich habe viele Beiträge gelesen, in denen darauf hingewiesen wurde, dass entweder der statische Analysator oder der Indexer schuld ist, aber ich habe viele der vorgeschlagenen Lösungen erfolglos ausprobiert.

Wenn ich eine Zeile wie die folgende hinzufüge, verschwindet der Fehler und die Mouseover-Code-Unterstützung für die Funktion funktioniert:

extern int isdigit(int);

Dies ist wiederum kein Linker- oder Compilerfehler - ndk-build wird ohne Fehler abgeschlossen. Das ist etwas in der Finsternis. Vielen Dank für Ihren Blick!

Edit: Ich glaube jetzt, dass dies ein Problem der Code-Analyse ist. Eine bessere Lösung besteht darin, die Code-Analyse-Optionen so zu bearbeiten, dass "Funktion konnte nicht gelöst werden" eine Warnung anstelle eines Fehlers ist. Auf diese Weise können Sie die Warnungen in der Problemansicht anzeigen, aber weiterarbeiten. Wenn die Funktion WIRKLICH fehlt, teilt Ihnen der Compiler dies mit! Ich habe auch eine neue Theorie, dass das Problem darin besteht, dass der Code Analyzer Symlinks folgt, weil alle "fehlenden" Funktionen in symbolisch verknüpften Include-Dateien enthalten sind. Würde mich über jeden Input zu dieser Theorie freuen.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage