Ubuntu e libcap (capacità) di riferimento non definito
-
26-10-2019 - |
Domanda
Sto cercando di compilare il seguente codice minimo C su Ubuntu 10.10:
#include <sys/capability.h>
void main(void)
{
cap_t cap;
cap = cap_get_proc();
}
con gcc -lcap test.c
che mi dà il seguente errore:
/tmp/ccCQFyXS.o: In function `main':
test.c:(.text+0x9): undefined reference to `cap_get_proc'
collect2: ld a retourné 1 code d'état d'exécution
Ho libcap2-dev e libcap2-bin installati, versione 2.21
ls /lib/libcap.*
/lib/libcap.a /lib/libcap.so /lib/libcap.so.2 /lib/libcap.so.2.21
Lo stesso codice con stessa corporatura di comando gcc con successo su Arch e Gentoo
Cosa devo fare per farlo costruire su ubuntu troppo?
Soluzione
Prova gcc -Wl,--no-as-needed -lcap test.c
o gcc test.c -lcap
.
Spero che questo aiuti!
Altri suggerimenti
Sto lavorando su Ubuntu 10.04 e ho avuto lo stesso problema (sys/capability.h not present on the file system
).
I risolto questo problema installando tramite Synaptic Package Manager del libcap-dev
pacchetto (versione 1: 2.17-2ubuntul). Che popola la cartella con il file /usr/include/sys
capability.h
Per RHEL:
yum install libcap-devel
gcc -lcap test.c