IS_ERR返回错误原因class_create
struct class *cls;
cls = class_create(THIS_MODULE, "sdev");
if(IS_ERR(cls)){
return PTR_ERR(cls);
}
解析:
创建设备节点使用了两个函数 class_create()和class_device_create()。在__exit()函数里,对应的使用class_destory()和class_device_destory()注销创建的设备节点。
但是在编译的时候,发现报错:implicit declaration of function ‘class_device_create’ 。
原因:在早期Linux的版本使用的是 class_device_create() 和 class_device_destory()。但是在Linux2.6.29以后,使用的函数变成了 class_create()和device_create(),并且需要添加头文件:#include <linux/device.h> 。
但是在编译的时候,发现报错:implicit declaration of function ‘class_device_create’ 。
原因:在早期Linux的版本使用的是 class_device_create() 和 class_device_destory()。但是在Linux2.6.29以后,使用的函数变成了 class_create()和device_create(),并且需要添加头文件:#include <linux/device.h> 。
最终原因:
#include <linux/device.h>
没有加头文件 上面代码居然 错误返回
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2020-04-01 sqlite3 linux加密版
2019-04-01 hook api实现
2019-04-01 \\Device\\PhysicalMemory
2019-04-01 error C4996: 'GetVersionExW': 被声明为已否决
2019-04-01 获取操作系统版本
2019-04-01 L与_T
2019-04-01 windows driver