3.busyboxをコンパイルする時にエラーが発生しました。

1981 ワード

一部の内容はhttp://blog.chinaunix.net/uid-23089249-id-34503.htmlを削除します
1、inotifydエラー
busybox-1.11.1をクロスコンパイルした場合、以下のエラーが発生しました。
CC      miscutils/inotifyd.o
miscutils/inotifyd.c:31:27: linux/inotify.h: No such file or directory
miscutils/inotifyd.c: In function `inotifyd_main':
miscutils/inotifyd.c:61: error: `IN_ALL_EVENTS' undeclared (first use in this function)
miscutils/inotifyd.c:61: error: (Each undeclared identifier is reported only once
miscutils/inotifyd.c:61: error: for each function it appears in.)
miscutils/inotifyd.c:129: error: dereferencing pointer to incomplete type
miscutils/inotifyd.c:139: error: dereferencing pointer to incomplete type
miscutils/inotifyd.c:140: error: dereferencing pointer to incomplete type
miscutils/inotifyd.c:140: error: dereferencing pointer to incomplete type
miscutils/inotifyd.c:143: error: invalid application of `sizeof' to incomplete type `inotify_event'
miscutils/inotifyd.c:143: error: dereferencing pointer to incomplete type
make[1]: *** [miscutils/inotifyd.o] Error 1
make: *** [miscutils] Error 2 
オンラインでは、これはbusyboxの一つのバグと言います。解決方法:inotifyedに対する支持をなくして、具体的な手順は以下の通りです。
# make menuconfig
Miscellaneous Utilities  --->
    [ ]inotifyd
もう一つのバグはtasksetで、それを削除します。でないと、時又のコンパイルは間違います。
Miscellaneous Utilities  --->
    [ ]taskset
2、起動時にBusyBoxから「/bin/sh:can't access ty;job consone turn off」というメッセージがあります。
解決方法:
shell  --->
    [ ]Job Console
    [*]Cttyhack    
3、ARPHRD_が定義されていませんINFINIBAND
エラー情報は以下の通りです。
networking/interface.c:818: error: 'ARPHRD_INFINIBAND' undeclared here (not in a function)
make[1]: *** [networking/interface.o] Error 1
make: *** [networking] Error 2
カーネルソースコードディレクトリの「include/linux/ifarp.h」ファイルを見ると、「ARPHRDuINFINIBAND」の値は「32」となります。その後、「networking/interface.cl」ファイルを修正し、ここに追加する:#define ARPHRD_INFINIBAND 32 /* InfiniBand */