Frage

Ich versuche, den folgenden minimalen C -Code auf Ubuntu 10.10 zu kompilieren:

#include <sys/capability.h>

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

mit gcc -lcap test.c Was mir den folgenden Fehler gibt:

/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

Ich habe libcap2-dev und libcap2-bin installiert, Version 2.21

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

Der gleiche Code mit demselben GCC -Befehl erstellt erfolgreich auf Arch und Gentoo

Was soll ich tun, um es auch auf Ubuntu aufzubauen?

War es hilfreich?

Lösung

Versuchen gcc -Wl,--no-as-needed -lcap test.c oder gcc test.c -lcap.
Hoffe das hilft!

Andere Tipps

Ich arbeite an Ubuntu 10.04 und hatte das gleiche Problem (sys/capability.h not present on the file system).

Ich habe dieses Problem über den Synaptic Package Manager des Pakets behoben libcap-dev (Version 1: 2.17-2ubuntul), die die bevölkert /usr/include/sys Ordner mit dem capability.h Datei.

Für rhel:

yum install libcap-devel
gcc -lcap test.c
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top