gpt4 book ai didi

gcc - 使用带有内核头文件的 gcc 编译 Linux 内核模块

转载 作者:行者123 更新时间:2023-12-04 00:31:15 27 4
gpt4 key购买 nike

我有一台带有内核 A 头文件的 Linux 机器。
我想在内核 B 当前运行时使用带有内核 A 的 GCC 编译 C 程序。

我怎样才能做到这一点?我如何检查它是否有效?

最佳答案

这是要深入研究的附加信息。发布 2.6 版本,正如其他回复中提到的,Makefile 负责大部分 Linux 内核模块编译步骤。然而,它的核心仍然是 GCC,它就是这样做的:(你也可以在没有 Makefile 的情况下编译它)

以下 GCC 选项是必要的:

  • -isystem /lib/modules/`uname -r`/build/include:你必须使用你正在编译的内核的内核头文件。使用
    默认/usr/include/linux 不起作用。
  • -D__KERNEL__ : 定义这个符号告诉头文件代码将在内核模式下运行,而不是作为用户进程。
  • -D模块 :这个符号告诉头文件为内核模块提供适当的定义。
  • gcc -DMODULE -D__KERNEL__ -isystem /lib/modules/$(uname -r)/build/include -c hello.c -o hello.ko

    关于gcc - 使用带有内核头文件的 gcc 编译 Linux 内核模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26113959/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com