Dichiarazione implicita di strlcpy e strlcat anche con "string.h" incluso


9

Gcc genera un errore quando provo a chiamare le funzioni strlcpyo strlcatin un file C:

error : implicit declaration of strlcpy
error : implicit declaration of strlcat

In quale libreria posso trovare quelle funzioni e la loro pagina man? Ho incluso string.hma non cambia nulla. Sto usando Linux Mint 17.2 e gcc 4.8.4


1
man strlcpyvisualizzerà la loro pagina man. In caso di problemi con il codice, è necessario pubblicare il codice , pubblicare la riga di comando del compilatore e farlo su Stack Overflow poiché le domande di programmazione sono fuori tema qui.
Gilles 'SO- smetti di essere malvagio' il

1
strlcpy()e simili sono disponibili in libc sulla maggior parte delle varianti UNIX. Linux è un'eccezione poiché un ex manutentore di glibc non gli piaceva, anche se non era in grado di spiegare perché o indicare un concetto migliore. Il software che porta su Linux di solito implementa le proprie versioni di queste funzioni.
schily,

Risposte:


14

Su Ubuntu, Mint e parenti, strlcpye strlcatsono disponibili nel libbsd-devpacchetto . Correre

sudo apt-get install libbsd-dev

Ciò installerà le librerie, i file di intestazione e le pagine man.

Per utilizzare le funzioni dal codice C, aggiungere la riga

#include <bsd/string.h>

ai tuoi file e aggiungi -lbsd, o più portatile $(pkg-config --libs libbsd), alla tua gccriga di comando per collegare la libreria.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.