Ubuntu und libcap (Fähigkeiten) undefinierte Referenz
-
26-10-2019 - |
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?
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