我正在做一些Linux內核開發,我試圖使用Netbeans。儘管宣佈支持Make-based C項目,但我無法創建功能完備的Netbeans項目。儘管編譯時有Netbeans分析了一個內核二進制文件,該二進制文件是用完整的調試信息編譯的。問題包括:設置Netbeans/Eclipse的Linux內核開發
- 文件被錯誤地排除:有些文件在項目,這意味着Netbeans的不相信他們應該被包含在項目中不正確灰色的,而事實上,它們被編譯進內核。主要的問題是Netbeans會錯過這些文件中存在的任何定義,例如數據結構和函數,但也會錯過宏定義。
- 找不到定義:不言而喻 - 通常情況下,Netbeans無法找到某個東西的定義。這部分是上述問題的結果。
- 找不到頭文件:不言自明
如果任何人有過與Linux內核開發設置Netbeans的成功,我想知道,如果是的話,他們使用什麼設置。最終,我在尋找Netbeans來解析Makefile(首選)或從二進制文件中提取調試信息(不太理想,因爲這會顯着減慢編譯速度),並自動確定哪些文件實際編譯以及哪些宏實際上是定義的。然後,基於此,我希望能夠找到任何數據結構,變量,函數等的定義,並具有完整的自動完成功能。
讓我前言這個問題的一些要點:
- 我不感興趣,在涉及VIM/Emacs的解決方案。我知道有些人喜歡他們,但我不是其中之一。
- 正如標題所暗示的,我會還高興地知道如何建立Eclipse中做什麼,我需要
- 雖然我寧願完美的覆蓋面,這東西只差萬分之一的定義顯然是細
SO的有用「相關問題」功能告訴我,以下問題是相關的:https://stackoverflow.com/questions/149321/what-ide-would-be-good-for-linux-kernel-driver-development。在閱讀之後,問題更多的是IDE之間的比較,而我正在尋找如何設置特定的IDE。即使如此,用戶Wade Mealing似乎在使用Eclipse進行這種開發方面有一些專業知識,所以我當然會很欣賞他的(當然也包括所有的)答案。
乾杯
感謝您的建議。我嘗試了一些類似於make-log文件的方法,但最終仍然出現了相同的問題。使用你指定的CFLAGS將是一個PITA,因爲它會大大增加編譯時間。 – 2010-06-09 16:22:11
它應該基於過去的經驗。會試試看。雖然有些符號有時會丟失並再次出現,這純粹是Netbeans的內部問題。 – Minghua 2010-06-09 17:50:59
[Here](https://github.com/minghuascode/Nbk/blob/master/note-nbkparse)我創建了一個腳本來生成適合NetBeans的make-log文件,以便從make輸出和dep文件。是的,你需要修改linux makefiles來保留dep文件。它對我來說非常好(幾乎沒有丟失的符號)。這些步驟有點冗長,但一旦完成,一切都將變得簡單。希望這個幫助。 – minghua 2012-02-07 05:19:37