2014-10-08 50 views
0

我是編程內核linux的新手,我試圖在linux內核中編寫一個函數來查找系統中處理器的數量,我發現這一點。Linux內核編程:不能包含頭文件

#include <linux/kernel.h> 
#include <linux/mmzone.h> 
void main(void){ 
information_nodos(); 
} 
long information_nodos(){ 
printk(KERN_WARNING,first_online_pgdat()); 
} 

的錯誤是:

fatal error : linux/mmzone.h : no such file or directory 

我知道你不能混用標準C庫,內核,因爲它們是獨立的,但爲什麼這是錯誤發生?

+0

您可能會缺少一些gcc參數,如-I。 – Claudio 2014-10-08 07:35:05

+0

你把這個功能放在哪裏?你修改了哪個文件? – Claudio 2014-10-08 07:36:51

+0

但是需要添加-I,-I在gcc中是獨立的files.a不是用於files.h,這個文件可以運行白色包括否? – CodeNoob 2014-10-08 07:42:54

回答

1

在我看來,你要做的是將一些kernel header file用於用戶空間程序。 有一些專門的Linux內核API來實現內核模塊,如果這就是你想要做的 - 請參閱LDD3書。對於用戶空間程序,您應該堅持C庫提供的內容。

+0

我讀過這本書,搜索信息,thx幫助。 – CodeNoob 2014-10-08 09:09:10