【问题标题】:Include errors while working in the kernel在内核中工作时包含错误
【发布时间】:2017-04-29 09:30:12
【问题描述】:

我正在实现 Hash_Drbg。

原始源代码可以在这里找到:https://github.com/torvalds/linux/blob/master/crypto/drbg.c

我已经取出了我实现所需的部分代码,并认为在我编译它时它应该可以工作。

当我编译时,我收到有关包含的错误。

例如:

fatal error: crypto/drbg.h: No such file or directory. 

这可以通过下载内核并修改源代码顶部的包含来轻松解决。当我这样做时,我在 drbg.h 标头中遇到了同样的错误。

例如:

fatal error: linux/scatterlist.h: No such file or directory. 

如何解决这些错误?

【问题讨论】:

  • 您是否使用编译器标志-I 来指定正确的包含目录?

标签: c linux hash include implementation


【解决方案1】:

您似乎缺少 Linux 内核标头,这些标头允许您针对 Linux 内核编译代码。

您应该安装 linux 头文件。你用的是哪种口味?请相应地更改以下命令。

在 Ubuntu 中仅安装标头:

$ sudo apt-get install linux-headers-$(uname -r)

在 Ubuntu 中安装整个 Linux 内核源代码:

$ sudo apt-get install linux-source

请注意,您应该使用与您正在运行的内核匹配的内核头文件。

然后您可以将其添加到您的 Makefile 中:

KDIR =//usr/src/linux-headers

all:
 $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules

【讨论】:

    猜你喜欢
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 2018-01-31
    • 2011-08-08
    • 1970-01-01
    相关资源
    最近更新 更多