關於 」printk「解疑

2021-04-12 23:43:28 字數 2311 閱讀 6406

關於 」printk「解疑

我在編譯時遇到以下錯誤:

hello.c: in function `init_module':

hello.c:15: warning: implicit declaration of function `printk'

附程式如下:

#ifndef __kernel__

#define __kernel__

#endif

#ifndef module

#define module

#endif

#include "linux/version.h"

#include "linux/init.h"

#include "linux/module.h"

#include "linux/kernel.h"

int init_module()

void cleanup()

module_license("gpl");

module_author("feng");

編譯語句為:

gcc -wall-dmodule -d__kernel__ -o2 -i /usr/include -c hello.c

re: 求助:printk(急)

gcc -wall-dmodule -d__kernel__ -o2 -i /usr/include -c hello.c

安裝核心原始碼沒有?

re: 求助:printk(急)

樓上的daemeon,能說得詳細一點嗎?(我系統裡安裝的是 redhat 9.0,kernel為 2.4.20-8)

re: 求助:printk(急)

你這樣寫 試試看

printk(kern_alert "hello,world/n");

re: 求助:printk(急)

re: 求助:printk(急)

1. 安裝核心原始碼 (kernel-source-2.4.20-8.rpm)

2. gcc -wall-dmodule -d__kernel__ -o2 -i /usr/src/linux-2.4.20-8/include -c hello.c

在網上可以找到很多解決這個問題的方法。

re: 求助:printk(急)

安裝kernel-source-2.4.20-8.rpm這個核心原始碼有什麼作用啊?我的核心已經是2.4.20-8

re: 求助:printk(急)

有用的主要是裡面的標頭檔案。

re: 求助:printk(急)

但系統的核心已經是2.4.20-8了,這不是重灌一次核心嗎 ?

re: 求助:printk(急)

是裝核心原始碼。 kernel source和kernel image該分得清吧。

re: 求助:printk(急)

回樓上,感謝你的指點,雖然我還沒去下原始碼,但我按照你的指示把目錄改至「/usr/src/linux-2.4.20-8/include」之後,編譯 時已沒有warning,但還是沒能把 printk 裡面的內容列印出來,請問這是什麼原因。

re: 求助:printk(急)

>>我按照你的指示把目錄改至「/usr/src/linux-2.4.20-8/include」之後,編譯時已沒有warning

你可能已經裝了原始碼的。

載入模組沒有?(in**od hello.o)

re: 求助:printk(急)

已進行載入(in**od)後,但結果沒出來(printk裡的內容)

re: 求助:printk(急)

必須用ctrl+alt+f1(f2 - f6也可以)切換到控制台才看得到。 你也可以用dmesg來看。

re: 求助:printk(急)

daemeon,我已按照你的提示除錯成功,萬分感謝!!!!

此外,我想問一下,為什麼只能在控制台中才能看到結果?還有,控制台是系統的「命令列」模式嗎?怎麼切換回去阿?

re: 求助:printk(急)

ctrl+alt+f7 切換到x

React 學習解疑

1.react 如下 輸出如下 hello,alice hello,emily hello,kate 雖然有正常輸出,但是控制台出現如下警告資訊 這個警告是因為react對dom做遍歷的時候,會根據data reactid生成虛擬dom樹,如果未手動新增unique constant key,rea...

關於泛型萬用字元邊界的疑惑及解疑

void set extends someclass extends someclass get 我們使用萬用字元通常是希望某乙個例項可以向上轉型 例 listlist new arraylist compile error list list new arraylist compile ok 這些...

理解printk函式

printk函式是在開發驅動過程中經常用到的乙個函式,作用就是在串列埠上輸出核心的資訊。這個常用的函式的執行過程未必大家都很清楚,下面的文章分析一下 printk 的執行過程,並說明 printk 函式的一些特點。下面是printk 的執行過程,重要的步驟有如下幾個 1.printk呼叫 vprin...