저는 리눅스 프로젝트를 진행하고 있습니다. 커널과 사용자 공간 모두에 공통적인 일부 코드(특히 구조체)와 헤더 파일(직접 구현)이 필요합니다. 누군가 이것을 구현하는 방법을 말해 줄 수 있습니까?
답변1
간단한 대답은 프로젝트의 두 부분(별도로 컴파일된)에 헤더를 포함하는 것입니다. 원하는 방식으로 이를 수행할 수 있습니다. 명확한 디렉토리 계층 구조는 다음과 같습니다.
project/
userspace_stuff/
kernal_stuff/
inc/
project_namespace/
이는 inc/project_namespace
선택 사항입니다. 헤더를 최상위 수준에 쉽게 배치하고 #include "../myheader.h"
두 하위 디렉터리의 소스 파일에서 사용할 수 있습니다. 개인적으로 저는 포함에 상대 경로를 사용하면 혼란스러울 수 있다는 것을 알았습니다. 그래서 저는 inc
디렉토리와 절대 경로( ) 를 갖고 싶습니다 #include <project_namespace/myheader.h>
. 이는 다음과 같이 최상위 레벨 메이크파일을 구성함으로써 촉진됩니다.
INC = -Iinc
CFLAGS += $(INC)