- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
解决了!!感谢@IanAbbott
标题应该是:
#include <linux/ktime.h>
#include <linux/timekeeping.h>
而不是 <linux/time.h>
.
更多细节见讨论。
我正在写一个系统调用名称sys_my_time.c
,这将使用 getnstimeofday()
.我已经导入了<linux/time.h>
.代码如下:
#include <linux/kernel.h>
#include <linux/linkage.h>
#include <linux/time.h>
asmlinkage int sys_my_time() {
struct timespec t;
getnstimeofday(&t);
// ...
return 0;
}
但是编译的时候报错:
CC kernel/sys_my_time.o
kernel/sys_my_time.c: In function ‘sys_my_time’:
kernel/sys_my_time.c:8:3: error: implicit declaration of function ‘getnstimeofday’ [-Werror=implicit-function-declaration]
getnstimeofday(&t);
^
cc1: some warnings being treated as errors
scripts/Makefile.build:320: recipe for target 'kernel/sys_my_time.o' failed
make[1]: *** [kernel/sys_my_time.o] Error 1
Makefile:1029: recipe for target 'kernel' failed
make: *** [kernel] Error 2
我不知道为什么会发生错误。
附言在 Ubuntu 16.04 中编译内核 V4.14.25
最佳答案
自内核版本 3.17.x 起,getnstimeofday
不再由 #include <linux/time.h>
声明.解决方案是添加:
#include <linux/ktime.h>
取决于内核版本,#include <linux/ktime.h>
将拉入 getnstimeofday
的声明来自 <linux/time.h>
(3.17.x 之前)或来自 <linux/timekeeping.h>
(从 3.17.x 开始)。无需包括 <linux/timekeeping.h>
直接。
请注意 <linux/ktime.h>
从 Linux 内核 2.6.16 开始可用。
您可以删除您的 #include <linux/time.h>
如果那里没有其他东西你需要使用。通过删除该行并为任何内核 3.17.x 或更高版本构建代码来测试这一点。
关于c - 当包含 <linux/time.h> 时,“getnstimeofday”是系统调用中的隐式声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50349294/
我正在做模块编程。我有时间测量我想对我正在做的一些 printk 的性能影响。我有一个这样的代码设置。 在代码的“declare-y”开头部分: struct timespec ts_start,ts
回答者 解决了!!感谢@IanAbbott 标题应该是: #include #include 而不是 . 更多细节见讨论。 原始问题 我正在写一个系统调用名称sys_my_time.c ,这将使
我是一名优秀的程序员,十分优秀!