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?

È stato utile?

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top