我正在尝试在ubuntu 10.10上编译以下最小C代码:
#include <sys/capability.h>
void main(void)
{
cap_t cap;
cap = cap_get_proc();
}
带有gcc -lcap test.c
的给出了以下错误:
/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
我安装了libcap2-dev和libcap2-bin,版本2.21
ls /lib/libcap.*
/lib/libcap.a /lib/libcap.so /lib/libcap.so.2 /lib/libcap.so.2.21
在arch和gentoo
上成功构建相同的gcc命令代码我该怎样做才能让它在ubuntu上构建?
答案 0 :(得分:5)
尝试gcc -Wl,--no-as-needed -lcap test.c
或gcc test.c -lcap
希望这有帮助!
答案 1 :(得分:2)
我正在使用Ubuntu 10.04,我遇到了同样的问题(sys/capability.h not present on the file system
)。
我解决了这个问题,通过Synaptic Package Manager安装包libcap-dev
(版本1:2.17-2ubuntul),它用/usr/include/sys
文件填充capability.h
文件夹。
答案 2 :(得分:0)
对于RHEL:
yum install libcap-devel
gcc -lcap test.c