Also ich kenne die Fehlermeldung nicht, weil ich nicht weiß, welche Bibliothek und welchen Compiler Du benutzt. Aber ich könnte mir denken, dass es einen Namenskonflikt gibt, der nicht gut aufgelöst werden kann.
Ich hatte so etwas ähnliches vor einiger Zeit. Beispielsweise gibt es die Headerdatei
time.h in verschiedenen Ausführungen, also als Teil der glibc oder auch als Teil der POSIX Bibliothek meines Linux Systems. Diese unterscheiden sich natürlich und die POSIX Bibliothek bietet mir zum Beispiel die Funktion
nanosleep() an. Will ich jetzt standardkonform arbeiten, schalte ich immer alle Warnungen an, also mit dem gcc: "
-W -Wall -pedantic -std=c99" (alternativ zu
-std=c99 wäre
-ansi für den C89 Standard). Dann werden aber auch keine POSIX Erweiterungen angenommen, sofern sie nicht explizit gekennzeichnet sind. Die Fehlermeldung, die bei mir kommt, lautet dann: "
warning: implicit declaration of function nanosleep.
Die Erweiterungen bekommt man dann nur freigeschaltet, wenn man beispielsweise in der ersten Zeile seines Programms
Code:
#define _POSIX_C_SOURCE 199309L
angibt. Einiges zu solchen Optionen steht in der Datei
/usr/include/features.h auf Linux Systemen.
Vielleicht trifft das Problem in ähnlicher Weise auch bei Dir zu. Man sollte sich dann vergewissern, in welcher Reihenfolge welche Verzeichnisse verschiedener Bibliotheken durchsucht werden.
HTH,
Martin