1. 程式人生 > >linux kernel中沒有include/linux/version.h檔案

linux kernel中沒有include/linux/version.h檔案

編譯核心的時候make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig

當然也可以用config和xconfig來代替menuconfig,但是這樣用可能會沒有設定某些配置檔案選項和沒有生成下面編譯所需的標頭檔案。所以推薦使用make menuconfig,這是核心開發人員用的最多的配置方法,配置完退出並儲存,檢查一下核心目錄中的include/linux/version.h和include/linux/autoconfig.h標頭檔案是否生成,這是編譯glibc要用到的。

以上轉自:如何為嵌入式開發建立交叉編譯環境:http://www.ibm.com/developerworks/cn/linux/l-embcmpl/

當然如果使用make config而沒有生成version.h的時候,而程式中涉及到version.h中的一些巨集的時候,你可以這樣寫:

#ifndef LINUX_VERSION_CODE

#define LINUX_VERSION_CODE 197376

#endif

#ifndef KERNEL_VERSION(a,b,c)

#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))

#endif