Gcc gibt einen Fehler aus, wenn ich versuche, die Funktionen strlcpy
oder strlcat
in einer C-Datei aufzurufen :
error : implicit declaration of strlcpy
error : implicit declaration of strlcat
In welcher Bibliothek finde ich diese Funktionen und ihre Manpage? Ich habe aufgenommen, string.h
aber es ändert nichts. Ich verwende Linux Mint 17.2 und gcc 4.8.4
man strlcpy
wird ihre Manpage anzeigen. Wenn Sie Probleme mit Ihrem Code haben, müssen Sie den Code veröffentlichen , die Compiler-Befehlszeile veröffentlichen und dies im Stapelüberlauf tun, da Programmierfragen hier nicht zum Thema gehören.strlcpy()
und ähnliche sind in libc für die meisten UNIX-Varianten verfügbar. Linux ist eine Ausnahme, da ein ehemaliger glibc-Betreuer sie nicht mochte, obwohl er nicht erklären konnte, warum oder auf ein besseres Konzept hinweisen konnte. Software, die auf Linux portiert, implementiert normalerweise eigene Versionen dieser Funktionen.Antworten:
Auf Ubuntu, Mint und Verwandten
strlcpy
undstrlcat
sind imlibbsd-dev
Paket verfügbar . LaufDadurch werden die Bibliotheken, Header-Dateien und Manpages installiert.
Fügen Sie die Zeile hinzu, um die Funktionen aus dem C-Code zu verwenden
zu Ihren Dateien hinzufügen
-lbsd
und$(pkg-config --libs libbsd)
zu Ihrergcc
Befehlszeile hinzufügen , um die Bibliothek zu verknüpfen.quelle