ubuntu and libcap (capabilities) undefined reference
-
26-10-2019 - |
Question
I'm trying to compile the following minimal C code on ubuntu 10.10:
#include <sys/capability.h>
void main(void)
{
cap_t cap;
cap = cap_get_proc();
}
with gcc -lcap test.c
which gives me the following error:
/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
I have libcap2-dev and libcap2-bin installed, version 2.21
ls /lib/libcap.*
/lib/libcap.a /lib/libcap.so /lib/libcap.so.2 /lib/libcap.so.2.21
The same code with same gcc command build successfully on arch and gentoo
What should I do to get it build on ubuntu too?
Solution
Try gcc -Wl,--no-as-needed -lcap test.c
or gcc test.c -lcap
.
Hope this helps!
OTHER TIPS
I'm working on Ubuntu 10.04 and I had the same problem (sys/capability.h not present on the file system
).
I resolved this problem installing via Synaptic Package Manager the package libcap-dev
(version 1:2.17-2ubuntul) which populates the /usr/include/sys
folder with the capability.h
file.
For RHEL:
yum install libcap-devel
gcc -lcap test.c
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow