You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树外Linux内核模块公共头文件的安装位置与Make目标咨询

树外内核模块共享头文件的安装方案

1. 头文件的安装位置

应该安装到对应内核版本的头文件目录下的专属子目录,常用路径有两类:

  • 优先选择:/lib/modules/$(uname -r)/build/include/linux/[你的模块名]/,这里的/lib/modules/$(uname -r)/build是指向当前内核头文件的符号链接,属于模块构建时的标准搜索路径,其他模块无需额外指定-I参数就能找到头文件。
  • 等效路径:/usr/src/linux-headers-$(uname -r)/include/linux/[你的模块名]/,这是内核头文件的实际存放目录,和上述路径功能一致。

如果不想占用内核默认的linux/子目录,也可以放在/usr/local/include/linux/[你的模块名]/,但这种情况其他模块构建时需要手动添加-I/usr/local/include参数才能定位到该头文件。

2. 用于安装的Make目标

内核自带的header_install、headers_install_all确实是为用户空间API头文件设计的,不适合树外模块的内核态共享头文件。你需要在模块的Makefile里自定义安装目标,比如命名为install_headers,示例代码如下:

# 定义头文件安装路径,默认指向当前内核的build目录
INSTALL_HDR_PATH ?= /lib/modules/$(shell uname -r)/build/include
# 头文件要放到的专属子目录
MODULE_HDR_DIR = $(INSTALL_HDR_PATH)/linux/your_module_name

# 自定义安装目标
install_headers:
	@mkdir -p $(MODULE_HDR_DIR)
	# 复制头文件并设置合理权限
	install -m 644 your_public_header.h $(MODULE_HDR_DIR)/

执行make install_headers即可完成头文件的安装。

内容的提问来源于stack exchange,提问作者eddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 09:14:54