Gcc génère une erreur lorsque j'essaie d'appeler les fonctions strlcpy
ou strlcat
dans un fichier C:
error : implicit declaration of strlcpy
error : implicit declaration of strlcat
Dans quelle bibliothèque puis-je trouver ces fonctions et leur page de manuel? J'ai inclus string.h
mais ça ne change rien. J'utilise Linux Mint 17.2 et gcc 4.8.4
man strlcpy
affichera leur page de manuel. Si vous rencontrez des problèmes avec votre code, vous devez publier le code , publier la ligne de commande du compilateur et le faire sur Stack Overflow car les questions de programmation sont hors sujet ici.strlcpy()
et similaires sont disponibles dans libc sur la plupart des variantes UNIX. Linux est une exception car un ancien mainteneur de la glibc ne les aimait pas même s'il n'était pas en mesure d'expliquer pourquoi ou de pointer vers un meilleur concept. Les logiciels qui portent sur Linux implémentent généralement leurs propres versions de ces fonctions.Réponses:
Sur Ubuntu, Mint et ses proches,
strlcpy
etstrlcat
sont disponibles dans lelibbsd-dev
package . CourirCela installera les bibliothèques, les fichiers d'en-tête et les pages de manuel.
Pour utiliser les fonctions du code C, ajoutez la ligne
à vos fichiers et ajoutez
-lbsd
, ou le plus portable$(pkg-config --libs libbsd)
, à votregcc
ligne de commande pour lier la bibliothèque.la source