我正在做一个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)