2012年1月4日 星期三

Linux Kernel Development & Eclipse CDT

用 Eclipse CDT 開發 kernel module 時,會遇到 indexer 找不到某些符號而產生大量的 syntax error,連帶地 code auto-completion 一起失效,就算你已經把 include path 設定好也一樣。是說 ... 自動完成功能不能用的話我還不如開 vim 來寫。

其實 Indexer 本身沒有問題,問題在於 kernel 要在編譯時才會在 Makefile 裡面定義 __KERNEL__ 巨集,沒定義它的話很多宣告會消失,導致 Indexer 抓不到宣告。只要在設定 include path 時一併將 __KERNEL__ 加進去就可以開心地在 CDT 下寫 kernel module 了。