c - 为什么有些函数不能在内核模块中使用?
问题描述
例如,在 中pgtable_types.h
,函数原型:
extern pte_t *lookup_address(unsigned long address, unsigned int *level);
清楚地存在于头文件中。
但是,当我使用此函数编译内核模块然后 insmod.ko
输出文件时,我得到一个lookup_address
未找到符号的错误。
为什么是这样?
解决方案
你的模块里面有MODULE_LICENSE("GPL v2")
一行吗?如果不是,则假定它是专有的,并且不允许访问lookup_address
标记为的 GPL 符号。
推荐阅读
- swift - UIActivityViewController 从 activityItems 中删除项目
- java - 数组内的变量未在 Java 中更新其值
- python-3.x - 如何使用 Pandas 对 txt 文件中的多个长字符串进行切片?
- regex - 如何在 Flutter 中使用正则表达式获取文本中的字符串
- php - Laravel 为相同的资源路由调用不同的控制器
- c# - 如何在视图中制作项目列表并将其添加到列表中的产品中
- c++ - 在 C++ 中使用 tinyxml 库读取 xml 文件时忽略注释掉的标签
- sql-server - 存储过程更改不反映 dacpac 脚本中的大小写敏感性
- typescript - react-native - fetch:网络请求失败
- wpf - 继承 DatagridColumnHeader 并使用它