在学习PLP的时候,编译Linux驱动时遇到上述错误,查了下发现是函数名已经变了。

从2.6就开始不用class_device_create和class_device_destroy,取而代之的是下面两个函数

device_create和device_destroy.改过来之后就没问题了,不过在新内核下编译好多现象都不一样,虽然都实现了相同的功能。

另外Implicit declaration of function的warning有可能是因为你没有包含头文件所致。比如你用了memset,但是没有包含string.h头文件。另外如果你把函数写错的话也有可能出现上述错误的。比如我在用class_destroy的时候,写成了class_destory,然后找了十多分钟,一直未果。最后突然发现这个,原来敲错函数名了。

Comments