ubuntu and libcap (capabilities) undefined reference

kuroneko picture kuroneko · Dec 1, 2011 · Viewed 11.5k times · Source

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?

Answer

another.anon.coward picture another.anon.coward · Dec 1, 2011

Try gcc -Wl,--no-as-needed -lcap test.c or gcc test.c -lcap.
Hope this helps!