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