核心和用戶空間的通用程式碼

核心和用戶空間的通用程式碼

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

相關內容