1

IPv6ネイバーキャッシュから情報を取得するために、Ubuntuでlibnl 3(http://www.infradead.org/~tgr/libnl/ )を使用してnetlinkを使用しようとしています。

この lib に一連のヘッダーを含めていますが、gcc は最初のヘッダーで既に失敗しています。

#include <libnl3/netlink/netlink.h>

libnl.h のような「メイン ヘッダー」はありません。

>$ gcc netlink_test.c 
In file included from netlink_test.c:11:0:
/usr/include/libnl3/netlink/netlink.h:24:36: fatal error: netlink/netlink-compat.h: No such file or directory
compilation terminated.

ファイル netlink.h には、「netlink/netlink-compat.h」が含まれています。残念ながら、「/usr/include/netlink/」フォルダはありません。「/usr/include/libnl3/netlink/」しかありません

したがって、「netlink/netlink.h」を含めると、次のようになります。

netlink_test.c:10:29: fatal error: netlink/netlink.h: No such file or directory
compilation terminated.

Ubuntu 12.04 に次のパッケージをインストールしました。

libnl-3-200
libnl-3-200-dbg
libnl-3-dev
libnl-3-doc
libnl-genl-3-200
libnl-genl-3-200-dev
libnl-route-3-200
libnl-route-3-200-dev

ここで何かが欠けていますか、それとも本当に壊れていますか?

4

1 に答える 1

7

OK、だからパッケージは壊れていないよ ;)

少し前に、ユーザーがこのライブラリの異なるバージョンをインストールできるメカニズムを導入しました。これで、「pkg-config」を使用して構成するか、「-I /usr/include/libnl3/」を使用して正確なディレクトリをコンパイラに渡すことができます。そして、それは機能します。

于 2012-12-06T10:15:57.490 に答える