[英]specific macro value in linux kernel module build
在构建内核模块时如何找出特定的内核宏值。
有很多宏选项,我希望知道在构建时分配给“特定宏”的值以及定义它的行号。
我很早以前就读过这本书...我知道这很有可能。
例如:使模块SUBDIRS = drivers / net / e1000 /
现在,在e1000中使用了一个宏HAVE_VLAN_IN_HW。
在构建模块时,我想知道它的确切来源(宏定义及其值)。
我应该用更好的关键字谷歌搜索它,例如预处理输出:
在这里您可以找到所有相关信息:
http://kernelnewbies.org/FAQ/KernelCrossCompilation
内核编译的另一个方面是,它可以帮助您生成预处理文件。 当您怀疑宏可能有问题时,此功能非常有用。 在2.4天内,我们可以获取命令行并添加-c选项,并将gcc预处理程序的结果重定向到文件。 在2.6中,它内置在内核中。 这是怎么回事。
说,我想为kernel / dma.c,#make kernel / dma.i生成预处理器输出
做完了 打开kernel / dma.i,查看预处理器对dma.c做了什么
这也可用于模块(不是内核的一部分)。
我们大多数人使用Linux交叉引用来查找函数,宏和变量的声明位置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.