헤더 파일이 포함 디렉터리와 아치로 구분되는 이유를 설명할 수 있는 사람이 있나요?
헤더 파일을 포함하기 위해 소스 코드를 연결하려면 실제로 어디서 가져오나요?
include/
또는
arch/arm/
ARM 호스트에서 프로그램을 작성 중입니다(크로스 컴파일 아님).
누군가 커널의 헤더 파일 구조를 설명할 수 있습니까? 어떻게 확산되고 있으며 그 뒤에 숨어 있는 논리는 무엇입니까?
답변1
사용자 공간 프로그램을 작성하는 경우 커널 헤더를 직접 사용해서는 안 됩니다(또는 arch
후자 include
에는 아키텍처에 적합하도록 전자가 포함됨). 당신은 사용해야합니다사용자 공간 프로그램에서 사용할 헤더 준비. 이들은 일반적으로 배포판에서 별도의 패키지로 제공됩니다.예를 들어 linux-libc-dev
데비안에서는 위에 링크된 지침에 따라 직접 준비할 수 있습니다.
커널의 헤더 파일 구성은 모든 공개 헤더 파일이 include
커널의 하위 디렉터리와 그 하위 디렉터리에 위치하며, 아키텍처별 헤더 파일은 arch
해당 디렉터리의 하위 디렉터리에 위치합니다. 대부분의 경우 include
커널 코드를 작성할 때 헤더를 포함합니다 .