2

Linuxカーネルでスパースを実行します。

しかし、次のエラーがスローされます。

Linux で sparse を実行します:
lovegcy@knltest-VirtualBox:~/git_root/linux$ make C=2
make[1]: `all' に対して何もする必要はありません。
HOSTCC arch/x86/tools/relocs_32.o
HOSTCC arch/x86/tools/relocs_64.o
HOSTCC arch/x86/tools/relocs_common.o
HOSTLD arch/x86/tools/relocs
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
CC kernel/bounds.s
GEN include/generated/bounds.h
CC arch/x86/kernel/asm-offsets.s
GEN include/generated/asm-offsets.h
CALL scripts/checksyscalls.sh
CHECK scripts/mod/empty.c
/bin/sh: 1: スパース: 見つかりません
make[2]:* [scripts/mod/empty.o] エラー 127
make[1]:
[スクリプト/mod] エラー 2
make: *
* [スクリプト] エラー 2

スパース インストール ログは次のとおりです。

lovegcy@knltest-VirtualBox:~/git_root/sparse$ make install
/bin/sh: 1: llvm-config: 見つかりません
Makefile:79: お使いのシステムには llvm がないため、sparse-llvm を無効にします
インストール 'sparse' -> '/home/lovegcy/bin/sparse'<br> インストール 'cgcc' -> '/home/lovegcy/bin/cgcc'<br> インストール 'c2xml' -> '/home/lovegcy/ bin/c2xml'<br> インストール 'test-inspect' -> '/home/lovegcy/bin/test-inspect'<br> インストール 'sparse.1' -> '/home/lovegcy/share/man/man1/ sparse.1'<br> インストール 'cgcc.1' -> '/home/lovegcy/share/man/man1/cgcc.1'<br> インストール 'libsparse.a' -> '/home/lovegcy/lib/ libsparse.a'<br> 'token.h' をインストール -> '/home/lovegcy/include/sparse/token.h'<br> 'parse.h' をインストール -> '/home/lovegcy/include/sparse/ parse.h'<br> 'lib.h' をインストール -> '/home/lovegcy/include/sparse/lib.h'<br> 'symbol.h' をインストール -> '/home/lovegcy/include/sparse/ symbol.h'<br>'scope.h' をインストール -> '/home/lovegcy/include/sparse/scope.h'<br> 'expression.h' をインストール -> '/home/lovegcy/include/sparse/expression.h'<br>インストール 'target.h' -> '/home/lovegcy/include/sparse/target.h'<br> インストール 'linearize.h' -> '/home/lovegcy/include/sparse/linearize.h'<br>インストール 'bitmap.h' -> '/home/lovegcy/include/sparse/bitmap.h'<br> インストール 'ident-list.h' -> '/home/lovegcy/include/sparse/ident-list.h '<br> 'compat.h' をインストール -> '/home/lovegcy/include/sparse/compat.h'<br> 'flow.h' をインストール -> '/home/lovegcy/include/sparse/flow.h '<br> 'allocate.h' をインストール -> '/home/lovegcy/include/sparse/allocate.h'<br> 'storage.h' をインストール -> '/home/lovegcy/include/sparse/storage.h '<br>インストール 'ptrlist.h' -> '/home/lovegcy/include/sparse/ptrlist.h'<br> インストール 'dissect.h' -> '/home/lovegcy/include/sparse/dissect.h'<br>インストール 'sparse.pc' -> '/home/lovegcy/lib/pkgconfig/sparse.pc'

詳細: カーネルは既にコンパイルされています。

誰か手がかりを教えてもらえますか?

どうもありがとうございました!

4

1 に答える 1

5

より簡単な方法:

sparseまず、公式チャンネルからホスト PC にダウンロードしてインストールします。

たとえば、Ubuntu の実行では、
$ sudo apt-get install sparse


ソースからのビルド:

sparseまたは、そのソースからビルドしようとしている場合は、make installコマンドの実行後にsparseバイナリが に存在することを確認する必要があり/usr/bin/sparseます。

これは、新しいターミナルを開いてwhich sparseコマンドを実行することで確認できます。次のような出力が必要です。

$ which sparse
/usr/bin/sparse

make C=2同じターミナルで、Linux カーネル ソース ディレクトリに移動し、Linux カーネル ソースでの実行を試みsparseます。

: ログから、sparseが にインストールされているように見えます/home/lovegcy/bin/。環境変数のパス/home/lovegcy/bin/を追加したことを確認してください。そうしないと、システムはバイナリ$PATHを見つけることができません。sparse

.bashrcUbuntu (bash シェルを実行) では、次のようにファイルに次の行を追加することで、新しい端末ごとにこれを自動化できます。

$ echo "export PATH=\$PATH:/home/lovegcy/bin/" >> ~/.bashrc
于 2013-08-09T02:48:35.790 に答える