天天看點

linux 網絡核心 ko檔案,編譯核心子產品 .ko檔案缺少:mmzone.h bounds.h

出現的問題:編譯的時候提示缺少頭檔案 mmzone.h ....bounds.h...等

include/linux/mmzone.h:18:26: error: linux/bounds.h: No such file or directory

include/linux/mmzone.h:197:5: warning: "MAX_NR_ZONES" is not defined

原因:bounds.h是在編譯核心時生成的,類似于編譯産生的.o檔案,如果你運作"make clean" or "make distclean",這個檔案就會被清除掉(詳情檢視核心Makefile)。是以,如果再利用此核心源碼編譯核心子產品,如果有涉及bounds.h,就會出現找不到該檔案的錯誤。

解決:獨立核心目錄之外編譯子產品時,要確定makefile檔案中所定義的核心源代碼樹已經make過一遍,且沒有make  clean。這樣就不會清除生成的bound.h頭檔案,這個檔案是生成子產品必須的。

或者"make prepare"

這樣就會重新生成bounds.h,搞定了!

再看看其内容:

#ifndef __LINUX_BOUNDS_H__

#define __LINUX_BOUNDS_H__

#define NR_PAGEFLAGS 19

#define MAX_NR_ZONES 3

#endif