8

我正在尝试在 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

使用相同 gcc 命令的相同代码在 arch 和 gentoo 上成功构建

我应该怎么做才能让它也建立在 ubuntu 上?

4

3 回答 3

7

尝试gcc -Wl,--no-as-needed -lcap test.cgcc test.c -lcap
希望这可以帮助!

于 2011-12-01T08:34:15.933 回答
3

我正在使用 Ubuntu 10.04 并且遇到了同样的问题 ( sys/capability.h not present on the file system)。

我通过 Synaptic 包管理器安装包libcap-dev(版本 1:2.17-2ubuntul)解决了这个问题,该包用文件填充/usr/include/sys文件夹capability.h

于 2012-11-06T10:25:16.883 回答
1

对于 RHEL:

yum install libcap-devel
gcc -lcap test.c
于 2016-12-19T06:46:53.923 回答