Linux 核心標頭檔案

2021-09-24 22:37:30 字數 3685 閱讀 4786

linux 核心的編譯時間太長,可以通過下面方法跳過編譯直接獲得標頭檔案

make headers_install arch=x86_64 install_hdr_path=$pwd/linux_header

chk     include/generated/uapi/linux/version.h

upd     include/generated/uapi/linux/version.h

wrap    arch/x86/include/generated/asm/clkdev.h

wrap    arch/x86/include/generated/asm/cputime.h

wrap    arch/x86/include/generated/asm/dma-contiguous.h

wrap    arch/x86/include/generated/asm/early_ioremap.h

wrap    arch/x86/include/generated/asm/mcs_spinlock.h

wrap    arch/x86/include/generated/asm/scatterlist.h

systbl  arch/x86/syscalls/../include/generated/asm/syscalls_32.h

syshdr  arch/x86/syscalls/../include/generated/uapi/asm/unistd_32.h

syshdr  arch/x86/syscalls/../include/generated/uapi/asm/unistd_64.h

syshdr  arch/x86/syscalls/../include/generated/uapi/asm/unistd_x32.h

hostcc  arch/x86/tools/relocs_32.o

hostcc  arch/x86/tools/relocs_64.o

hostcc  arch/x86/tools/relocs_common.o

hostld  arch/x86/tools/relocs

hostcc  scripts/unifdef

install usr/include/asm-generic/ (35 files)

install usr/include/drm/ (18 files)

install usr/include/linux/byteorder/ (2 files)

install usr/include/linux/caif/ (2 files)

install usr/include/linux/can/ (5 files)

install usr/include/linux/dvb/ (8 files)

install usr/include/linux/hdlc/ (1 file)

install usr/include/linux/hsi/ (1 file)

install usr/include/linux/isdn/ (1 file)

install usr/include/linux/mmc/ (1 file)

install usr/include/linux/netfilter/ipset/ (4 files)

install usr/include/linux/netfilter/ (85 files)

install usr/include/linux/netfilter_arp/ (2 files)

install usr/include/linux/netfilter_bridge/ (17 files)

install usr/include/linux/netfilter_ipv4/ (9 files)

install usr/include/linux/netfilter_ipv6/ (12 files)

install usr/include/linux/nfsd/ (5 files)

install usr/include/linux/raid/ (2 files)

install usr/include/linux/spi/ (1 file)

install usr/include/linux/sunrpc/ (1 file)

install usr/include/linux/tc_act/ (8 files)

install usr/include/linux/tc_ematch/ (4 files)

install usr/include/linux/usb/ (11 files)

install usr/include/linux/wimax/ (1 file)

install usr/include/linux/ (404 files)

install usr/include/misc/ (1 file)

install usr/include/mtd/ (5 files)

install usr/include/rdma/ (6 files)

install usr/include/scsi/fc/ (4 files)

install usr/include/scsi/ (3 files)

install usr/include/sound/ (11 files)

install usr/include/video/ (3 files)

install usr/include/xen/ (4 files)

install usr/include/uapi/ (0 file)

install usr/include/asm/ (65 files)

**:

1、在核心原始碼根目錄下執行: 'make headers_install',這樣核心makefile會把提供給應用程式的標頭檔案提取並放在核心原始碼的「usr/include」目錄下。

(請勿擔心git會發現檔案增加了,usr目錄中的.gitignore檔案已經讓git忽略了其下的include資料夾)

2、在編譯應用程式的時候,在gcc的cflag引數中新增「-i(核心原始碼路徑)/usr/include」,這樣編譯器就知道在編譯時找到相關的標頭檔案了。

平時我們在編譯應用程式的時候,不可避免的會使用核心標頭檔案,比如v4l2,字元驅動等等。此時直接的使用核心原始碼中include目錄下的標頭檔案,可能就會有警告。這個警告現在看來僅在"include/linux/types.h"中存在,因為這個檔案中包含了很多核心自定義的型別,你的應用程式如果也做了這樣的定義就可能出現問題。此時你就應該使用核心幫你處理過的專門提供給使用者空間的標頭檔案,這個就是為什麼'make headers_install'會將標頭檔案(預設)放在usr(使用者)目錄下的原因。

make headers_install arch=arm install_hdr_path=/usr/include

其中arch指定要產生哪種體系結構的標頭檔案,install_hdr_path指定要匯出標頭檔案的目錄。

如果只是執行make headers_install ,則匯出所有體系結構的標頭檔案到預設目錄」./usr/include「

如果是自己定義的標頭檔案,要想匯出,需要修改標頭檔案下的kbuild檔案,例如我們自己定義的標頭檔案在include/linux/generic/目錄下

有如下標頭檔案:

gsm.h, sensor.h

kernel.org 核心標頭檔案安裝說明

ubuntu kernel wiki

linux核心標頭檔案

include 是在linux 2.6.29 include linux下面尋找原始檔。include 是在linux 2.6.29 arch arm include asm下面尋找原始檔。include 是在linux 2.6.29 arch arm mach s3c2410 include ma...

Kali Linux 核心標頭檔案安裝

檢視linux核心版本 執行命令 uname r 顯示核心版本 4.6.0 kali1 amd64 檢視linux是否已經安裝核心標頭檔案 執行命令 apt cache search linux headers 如果有核心標頭檔案,比如linux headers 4.6.0 kali1 amd64,...

liunx核心標頭檔案位置概述

在不同版本的核心原始碼上,標頭檔案所在的位置是不同的,比如說在 include include 同樣是regs gpio.h,是在比較低的版本 比如2.6.25 上位於arch arm include asm中,而mach regs gpio.h則是位於arch arm mach s3c2410 i...