想請教一個關於Compiler的問題

我們生活周遭存在太多太多的 embedded system ,過去 embedded system 有專屬的 OS,現在 linux 也可以應用在嵌入式環境,不過本版將廣泛討論所有嵌入式系統不只 linux 喔,歡迎有這方面經驗或有興趣的朋友一同進來討論。

版主: chester

想請教一個關於Compiler的問題

文章jackluli » 週二 4月 29, 2008 10:27 am

小弟最近在研究LDD這本書,在書中有看到一個scull範例,想試著編譯看看,但是都會出現以下問題,小弟找了很久也試著改改看程式碼,結果還是不行?想問問學長這要怎麼解決才好
代碼: 選擇全部
Debian99:~/scull# make
make -C /lib/modules/2.6.24-1-686/build M=/root/scull LDDINC=/root/scull/../include modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.24-1-686'
  CC [M]  /root/scull/access.o
/root/scull/access.c: In function ‘scull_u_open’:
/root/scull/access.c:106: error: dereferencing pointer to incomplete type
/root/scull/access.c:107: error: dereferencing pointer to incomplete type
/root/scull/access.c:114: error: dereferencing pointer to incomplete type
/root/scull/access.c: In function ‘scull_w_available’:
/root/scull/access.c:165: error: dereferencing pointer to incomplete type
/root/scull/access.c:166: error: dereferencing pointer to incomplete type
/root/scull/access.c: In function ‘scull_w_open’:
/root/scull/access.c:179: error: ‘TASK_INTERRUPTIBLE’ undeclared (first use in this function)
/root/scull/access.c:179: error: (Each undeclared identifier is reported only once
/root/scull/access.c:179: error: for each function it appears in.)
/root/scull/access.c:179: error: implicit declaration of function ‘signal_pending’
/root/scull/access.c:179: error: implicit declaration of function ‘schedule’
/root/scull/access.c:184: error: dereferencing pointer to incomplete type
/root/scull/access.c: In function ‘scull_w_release’:
/root/scull/access.c:205: error: ‘TASK_INTERRUPTIBLE’ undeclared (first use in this function)
/root/scull/access.c: In function ‘scull_c_open’:
/root/scull/access.c:277: error: dereferencing pointer to incomplete type
/root/scull/access.c:281: error: dereferencing pointer to incomplete type
make[2]: *** [/root/scull/access.o] Error 1
make[1]: *** [_module_/root/scull] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.24-1-686'
make: *** [modules] Error 2
Debian99:~/scull#


P.S.已經想破頭的我 :(
jackluli
可愛的小學生
可愛的小學生
 
文章: 49
註冊時間: 週一 3月 17, 2008 1:56 pm

文章訪客 » 週二 4月 29, 2008 12:24 pm

原書scull範例,使用哪個版本的kernel?
訪客
 

文章jackluli » 週二 4月 29, 2008 3:16 pm

2.6
jackluli
可愛的小學生
可愛的小學生
 
文章: 49
註冊時間: 週一 3月 17, 2008 1:56 pm

文章阿信 » 週四 5月 08, 2008 9:13 am

Hi

2.6.19之後已經移除了linux/config.h,所以LDD3的examples只能在2.6.18以下的Kernel編繹。

如果要在2.4.24的kernel編繹的話,請修改兩個地方

main.c:16 移除#include <linux/config.h>

access.c:在include 的附近加入 #include <linux/sched.h>

這樣就可以make 了
最後由 阿信 於 週五 5月 09, 2008 9:50 am 編輯,總共編輯了 1 次。
頭像
阿信
版面大總管
版面大總管
 
文章: 4756
註冊時間: 週二 9月 03, 2002 11:58 pm
來自: 台灣 - 嘉義

文章jackluli » 週四 5月 08, 2008 3:21 pm

謝謝阿信大大的回應,我剛剛試過了可以順利make,但是我有一個疑問我的Kernel是2.6.24,怎麼也可以呢?您不是說2.4.24才要修改這兩個檔案,所以我只是想好奇的問一下,反正還是要再感謝阿信大大的解答,耶又有研究的動力了。
jackluli
可愛的小學生
可愛的小學生
 
文章: 49
註冊時間: 週一 3月 17, 2008 1:56 pm

文章阿信 » 週五 5月 09, 2008 9:52 am

jackluli 寫:謝謝阿信大大的回應,我剛剛試過了可以順利make,但是我有一個疑問我的Kernel是2.6.24,怎麼也可以呢?您不是說2.4.24才要修改這兩個檔案,所以我只是想好奇的問一下,反正還是要再感謝阿信大大的解答,耶又有研究的動力了。


你好,我上一篇是寫錯了,剛上班頭暈了吧 :P

我是指2.6.18以上。 至於2.4.24的版本,所以沒有trace 2.4的kernel了,所以2.4應該有linux/config.h才是,麻煩您來驗證了?
頭像
阿信
版面大總管
版面大總管
 
文章: 4756
註冊時間: 週二 9月 03, 2002 11:58 pm
來自: 台灣 - 嘉義


回到 embedded system

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客