- 博客(13)
- 收藏
- 关注
原创 一个简单的 Linux 内核模块项目(使用 CMake)
问题原因解决方案交叉编译工具缺失安装并创建软链接缺少添加编译失败架构不匹配使用信息含义是否正常模块未签名,验证失败✅ 正常(学习环境可忽略)内核被“污染”✅ 正常模块成功运行✅ 成功!
2025-10-21 01:37:45
845
原创 find_package命令学习
先在 CMAKE_MODULE_PATH 变量对应的路径中查找。如果路径为空,或者路径中查找失败,则在CMake安装目录(即CMAKE_ROOT变量)下的Modules目录下(通常为/usr/share/cmake-3.10/Modules,3.10是我的CMake版本)查找。首先我们需要明确一点,CMake本身不提供任何搜索库的便捷方法,所有搜索库并给变量赋值的操作,必须由CMake代码完成,也就是上述中的XXXConfig.cmake以及下面将要提到的FindXXX.cmake配置文件。
2025-10-20 01:11:36
705
原创 CMake能生成.ko文件
设置正确的内核源码路径使用调用内核的构建系统通过构建模块这比传统的Makefile方式更现代、更易于维护,特别适合大型项目。希望这个教程能帮助你入门CMake构建内核模块!
2025-10-20 01:02:55
351
原创 CMakeLists.txt 学习
MyProject/ # 顶层 (L1)├── cmake/ # 工具链配置 (L2)├── core/ # 核心库 (L2)├── services/ # 服务模块 (L2)│ └── network/ # 网络子模块 (L3)
2025-08-13 00:21:03
367
原创 Cmake学习
把理解为“告诉 CMake 额外去哪儿找脚本”的变量;只是最常用、最安全的追加方式,不会覆盖已有路径,也不会影响其他项目。FindXXX.cmake / XXX.cmake 就是“让 CMake 找到第三方库”的地图脚本。你写或别人写,目的都是把“库在哪”翻译成 CMake 能懂的变量或目标。记住:Module 模式找,Config 模式找,两条路线谁先谁后 CMake 有固定优先级。
2025-08-13 00:20:01
1161
原创 OpenSSH源码分析
这段代码的主要功能是从缓冲区中读取密码,验证密码的有效性,用于处理密码认证请求,并将认证结果发送给监控器。同时,它还负责清理密码以保护安全性,并记录相关日志。
2024-12-28 14:16:18
493
原创 GDB调试技巧积累
gdb中的s命令用于逐行执行代码,并在遇到函数调用时进入函数内部。它是调试程序时最常用的命令之一,特别适用于深入分析函数的执行过程和调试复杂的逻辑。结合其他调试命令(如nfin和c),你可以更高效地定位和修复程序中的问题。
2024-12-28 13:50:58
439
原创 C语言条件编译
在C语言中,#if#else和#endif是预处理器指令,用于条件编译。这些指令允许你在编译时根据常量表达式的值来选择性地编译代码块。#if 1是一个常量表达式,表示条件始终为真。
2024-11-28 11:36:42
325
1
原创 C语言注册函数、回调函数
可以发现,虽然 Register 函数参数没变过,都是my_data,但是通过改变函数管理器中的值,就可以改变Register(my_data)的输出。这就实现了C语言的多态,面向对象的多态的实现原理是一样的。函数指针:指向存放函数空间首地址的指针变量,也就是说,这个指针变量指向一个函数空间的首地址,一般情况下,函数名字就是函数空间的首地址,用一个指针指向这个地址,有点啰嗦。为了实现多态,我们可以把 register 的参数封装进结构体。父函数可以指定某个子函数去执行。简单来说,注册函数就是。
2023-05-09 01:02:45
2773
3
原创 Linux文件编程——创建一个文件
1.创建文件函数 : creat 通过man 2 open 手册查得函数原型为 需要的头文件为:#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> 函数原型为:int creat(const char *pathname, mode_...
2021-08-14 21:12:00
1257
1
转载 Linux文件编程
文件编程概述 在Linux操作系统中,提供了一系列的API,基本的API包括: (1)打开文件——open. (2)读写文件——read/write. (3)光标定位——lseek. (4)关闭——close.1.open函数 函数原型: int open (const char *pathname,int flags)。 int open (const char *pathname,int flags,mode_...
2021-08-13 16:10:02
204
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅