8

私はubuntu10.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.cまたはを試してくださいgcc test.c -lcap
お役に立てれば!

于 2011-12-01T08:34:15.933 に答える
3

私はUbuntu10.04で作業していますが、同じ問題が発生しました(sys/capability.h not present on the file system)。

Synaptic Package Managerを介して、フォルダーにファイルを追加するパッケージlibcap-dev(バージョン1:2.17-2ubuntul)をインストールすると、この問題が解決しました。/usr/include/syscapability.h

于 2012-11-06T10:25:16.883 に答える
1

RHELの場合:

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