我正在做一些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