2

我在linux内核上运行稀疏。

但它会引发以下错误:

在 linux 上运行 sparse:
lovegcy@knltest-VirtualBox:~/git_root/linux$ make C=2
make[1]: Nothing to be done for `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
检查脚本/mod/empty.c
/bin/sh: 1: sparse: not found
make[2]:* [scripts/mod/empty.o] 错误 127
make[1]:
[scripts/mod] 错误 2
make: *
* [scripts] 错误 2

这是稀疏的安装日志:

lovegcy@knltest-VirtualBox:~/git_root/sparse$ make install
/bin/sh: 1: llvm-config: not found
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/符号.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

在同一终端中,导航到 Linux 内核源目录并尝试在 Linux 内核源上make C=2运行sparse

注意:从您的日志看来,sparse正在安装到/home/lovegcy/bin/. 确保您已添加环境变量的/home/lovegcy/bin/路径$PATH。否则系统将无法找到sparse二进制文件。

在 Ubuntu(运行 bash shell)上,可以通过在.bashrc文件中添加以下行来为每个新终端自动执行此操作,如下所示:

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