Référence indéfinie ubuntu et libcap (capacités)

J’essaie de comstackr le code C minimal suivant sur Ubuntu 10.10:

#include  void main(void) { cap_t cap; cap = cap_get_proc(); } 

avec gcc -lcap test.c qui me donne l’erreur suivante:

 /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 

J’ai libcap2-dev et libcap2-bin installés, version 2.21

 ls /lib/libcap.* /lib/libcap.a /lib/libcap.so /lib/libcap.so.2 /lib/libcap.so.2.21 

Le même code avec la même commande gcc se construit avec succès sur arch et gentoo

Que dois-je faire pour que ça se construise sur ubuntu aussi?

Essayez gcc -Wl,--no-as-needed -lcap test.c ou gcc test.c -lcap .
J’espère que cela t’aides!

Je travaille sur Ubuntu 10.04 et j’ai le même problème ( sys/capability.h not present on the file system ).

J’ai résolu ce problème en installant via Synaptic Package Manager le package libcap-dev (version 1: 2.17-2ubuntul) qui remplit le dossier /usr/include/sys avec le fichier capacity.h.

Pour RHEL:

 yum install libcap-devel gcc -lcap test.c