Standardbibliothek "LIBC" steht in Konflikt mit anderen Bibliotheken

Martin Schroeder

Erfahrenes Mitglied
Moin moin!
Ich werde immer stutzig, wenn ich die Meldung "Standardbibliothek "LIBC" steht in Konflikt mit anderen Bibliotheken" sehe, wenn ich selbst erstellte Bibliotheken verwende.
Woran liegt das?
Kann man das irgendwie beheben, oder ist das sowieso egal, weils ja bloß ne Warnug ist?
Martin
 
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
 
Das Problem hatte ich auch, leider ist es noch ungelöst. Ich wollte ein Programm schreiben, welches die LIBC und MFC gemeinsam nutzt. Leider hat sich der Compiler massiv beschwert, ich hatte damals hier auch einen Thread erstellt, allerdings ohne Erfolg.
 
Zurück