内核和用户空间的通用代码

内核和用户空间的通用代码

我正在做一个linux项目。我想要一些内核和用户空间通用的代码(具体来说,一个结构体)和一个头文件(我自己的实现)。有人可以告诉我如何实现这个吗?

答案1

简单的答案是仅将标头包含在项目的两个(单独编译的)部分中。你可以随心所欲地这样做;一个明显的目录层次结构可能如下所示:

project/
    userspace_stuff/
    kernal_stuff/
    inc/
       project_namespace/

inc/project_namespace是可选的——您可以轻松地将标头放在顶层并#include "../myheader.h"在两个子目录中的源文件中使用。就我个人而言,我发现使用包含的相对路径可能会变得混乱,所以我喜欢有一个inc目录和绝对路径(#include <project_namespace/myheader.h>),通过使用以下内容组织顶级 makefile 来促进:

INC = -Iinc
CFLAGS += $(INC)

相关内容