致命的なエラー:netlink / genl / genl.h:そのようなファイルまたはディレクトリはありません


10

私はopenwrt用のhostapdをクロスコンパイルしています。私は得ていfatal error: netlink/genl/genl.h: No such file or directoryます。libnl-3.2.24がすでにインストールされています。(クロスコンパイルではなく)直接コンパイルすると、hostapdはエラーなしで適切にコンパイルされます。


2
どのARCHですか?
AB

回答:


23

次のコマンドで正しいパッケージを検索できます。

apt-file search /netlink/genl/genl.h

私の場合、出力は次のとおりです。

libnl-3-dev:/usr/include/libnl3/netlink/genl/genl.h

つまり、パッケージをインストールする必要がありますlibnl-3-dev

sudo apt-get install libnl-3-dev

そして、あなたは必要です libnl-genl-3-dev

sudo apt-get install libnl-genl-3-dev

次に、configファイルを開きます。

nano hostap/hostapd/.config

行のコメントを外します:

CONFIG_LIBNL32=y

makeもう一度始めます。


「(クロスコンパイルではなく)直接コンパイルすると、hostapdはエラーなしで適切にコンパイルされます。」-OPにこのパッケージが含まれていないと思います。
muru、

@muru動作するようになりました。テストしただけです。
AB

あなたはクロスコンパイルしていますか?
muru、

@muruうーん、クロスコンパイルなし。どのアーキテクチャですか?
AB

@muruたとえば、次のように機能します:make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
AB

0

ヘッダーファイル.../netlink/genl/genl.hlibnl-3-devパッケージにあります

以下を使用してインストールします。

sudo apt-get install libnl-3-dev

「(クロスコンパイルではなく)直接コンパイルすると、hostapdはエラーなしで適切にコンパイルされます。」-OPにこのパッケージが含まれていないと思います。
muru、

0

クロスコンパイラツールチェーンにlibnl、およびlibnl-genlがビルドされていることを確認してください。また、ビルド時に正しいincludeおよびlibディレクトリを使用するなどして、プロジェクトがライブラリを見つけられることを確認してください。CFLAGS = "-I $(STAGING_DIR)/ usr / include"およびLDFLAGS = "-L $(STAGING_DIR)/ usr / lib"を使用してそれらを指定することがよくあります

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.