如何在Windows中将linux头添加到Eclipse CDT

如何在Windows中将linux头添加到Eclipse CDT,c,eclipse,linux-kernel,kernel,eclipse-cdt,C,Eclipse,Linux Kernel,Kernel,Eclipse Cdt,我试图通过LinuxMint上的CDT在Eclipse中编写内核模块(使用纯C),但CDT似乎没有检测到库。 未解析的库包括: #include <linux/module.h> #include <linux/slab.h> #include <linux/cdev.h> #include <asm/atomic.h> #include <linux/list.h> .... #包括 #包括 #包括 #包括 #包括 ....

我试图通过LinuxMint上的CDT在Eclipse中编写内核模块(使用纯C),但CDT似乎没有检测到库。 未解析的库包括:

#include <linux/module.h>
#include <linux/slab.h>  
#include <linux/cdev.h>
#include <asm/atomic.h>
#include <linux/list.h>
....
#包括
#包括
#包括
#包括
#包括
....
如何将这些库放入Eclipse中,并使其检测到这些库,以便在开发中使用它们?
我通常在Windows上使用Eclipse for Java,它允许轻松导入库,但我不理解Linux上的CDT。

这个问题有缺陷。问题代码列出了几个“include”文件,并称它们为“库”;实际上,它们是“头文件”(而不是库)

“头文件”都为编译器定义了符号,这些符号在加载内核模块(insmod等)时由内核解析

由“头文件”定义的特定符号不是必须与代码链接(链接时)的库的一部分。相反,这些符号由内核本身体现。“内核就是库”(直截了当地说)。在这些头文件中找不到链接符号的库

我不相信您会发现使用Eclipse构建内核模块是切实可行的(如果可能的话)

而是使用Linux提供的kbuild环境。在Linux系统上,读取以下文件:

/usr/src/linux/Documentation/kbuild/modules.txt

这将使您走上构建Linux内核模块的正确道路。

Linux上的标准实践是使用“内核构建”工具来编译内核模块;这可能会让一些人觉得“太复杂了”。正在尝试使用Eclipse完成相同的任务。。。好。。让我们说“你有很长的路要赶”。我的建议是,坚持“内核构建”。我可以进行内核构建并生成文件,但这会阻碍开发速度,因为Eclipse可以建议快速键入的选项。但是它如何能够解析某些头文件呢?(我习惯于使用java,因此最终称它们为库)是否有可能复制粘贴它们并强制Eclipse至少检测它们?内核头文件的路径与用于用户空间的路径不同。您可以在这里找到它们:/usr/src/linux/include/linux即使我不能完全编译它,Eclipse在编码部分和结构设计方面确实有帮助。我不明白的是我可以编译和运行代码,但头文件不在目录中。@chettyharish,您是对的;当然头文件不在当前工作目录中。不知何故,kbuild系统神奇地使它们在需要时可供编译器使用。如果您能够编译并“运行”(或者更好地说:“加载”)您的内核模块,那么使用kbuild似乎取得了一些成功。日食带你走了很长的路;但是,在构建LKM时,是时候将训练轮从自行车上取下,真正理解C。