Linux 커널의 포함 디렉터리 이해

Linux 커널의 포함 디렉터리 이해

헤더 파일이 포함 디렉터리와 아치로 구분되는 이유를 설명할 수 있는 사람이 있나요?

헤더 파일을 포함하기 위해 소스 코드를 연결하려면 실제로 어디서 가져오나요?

include/

또는

arch/arm/

ARM 호스트에서 프로그램을 작성 중입니다(크로스 컴파일 아님).

누군가 커널의 헤더 파일 구조를 설명할 수 있습니까? 어떻게 확산되고 있으며 그 뒤에 숨어 있는 논리는 무엇입니까?

답변1

사용자 공간 프로그램을 작성하는 경우 커널 헤더를 직접 사용해서는 안 됩니다(또는 arch후자 include에는 아키텍처에 적합하도록 전자가 포함됨). 당신은 사용해야합니다사용자 공간 프로그램에서 사용할 헤더 준비. 이들은 일반적으로 배포판에서 별도의 패키지로 제공됩니다.예를 들어 linux-libc-dev데비안에서는 위에 링크된 지침에 따라 직접 준비할 수 있습니다.

커널의 헤더 파일 구성은 모든 공개 헤더 파일이 include커널의 하위 디렉터리와 그 하위 디렉터리에 위치하며, 아키텍처별 헤더 파일은 arch해당 디렉터리의 하위 디렉터리에 위치합니다. 대부분의 경우 include커널 코드를 작성할 때 헤더를 포함합니다 .

관련 정보