我正在尝试按照以下说明为NVIDIA Jetson Tk-1构建自定义内核: https://github.com/projectara/Android-wiki/wiki/Kernel-Only-Build-Instructions-for-Jetson-reference-platform
一切顺利,直到"测试您的自定义内核"部分:
步骤2.制作greybus模块
$ cd $ JKB_ROOT / greybus
$ make clean
$ make ARCH = arm KERNELDIR = .. / kernel-out EXTRA_CFLAGS + = - fno-pic
以下是我收到错误的摘录:
/home/jonah/ara_kernel/greybus/loopback.c:在功能上 ' gb_loopback_probe':/home/jonah/ara_kernel/greybus/loopback.c:1207:2: 错误:隐含的函数声明' device_create_with_groups' [-Werror = implicit-function-declaration] dev = device_create_with_groups(& loopback_class,^ /home/jonah/ara_kernel/greybus/loopback.c:1207:6:警告:任务 在没有强制转换的情况下从整数生成指针[默认启用] dev = device_create_with_groups(安培; loopback_class,
loopback.c文件中出现问题,该文件使用函数device_create_with_groups(...)
这是loopback.c文件: https://github.com/projectara/greybus/blob/master/loopback.c
据我所知,这个函数可以在include / linux / device.h头文件中找到,但即使我将#include <linux/device.h>
添加到loopback.c的开头,我也会得到相同的隐式声明错误。
我正在使用Linux内核头文件4.5.0-040500-generic运行Ubuntu 14.04。
我是否使用了错误的内核头文件,或者该函数是否已被弃用?
我可以通过上面函数中的声明来消除警告:
struct device *device_create_with_groups(struct class *class, struct device *parent, dev_t devt, void *drvdata, const struct attribute_group **groups, const char *fmt, ...);
但是当我使用内核时,这会有什么严重的后果吗?或者链接器最终会神奇地找到该函数?