这基本上是以下内容的重复:用于C++的Netbeans还是Eclipse?
但是,这个问题在3岁以上的时候就已经发生了很大的变化。
我有一个很大的代码库,里面有一个自定义(但基于Makefile)的构建系统。我特别想知道的领域包括:
- 语法突出显示
- 代码导航
- 代码提示
- "ReSharper风格"的代码助手
- 文档集成
- 调试器UI和功能
有人有机会评估Netbeans和Eclipse吗?
编辑:作为一个后续问题,考虑到甲骨文最近"开放"努力的糟糕历史,这里的Netbeans用户中有人关心它的未来吗?(Open Solaris、MySQL、Open Office)
谢谢
我不能对eclipse发表评论,但在netbeans 7上,我会说一些对我来说非常重要的事情,到目前为止效果很好:
- 代码完成,转到声明
- pkg配置用于解析的自动包含管理
有时有效有时无效的
- 查找用法,有时在其他开放项目中可能找不到用法
- 调试器有时会与unittest-cpp宏混淆,并且它不会在正确的行上运行
那些还不起作用的东西,我非常关心:
- C++0x语法高亮显示(auto、lambdas、enum类、可变模板,内置解析器无法识别它们)
不太管用但我毫不在乎的东西:
- git集成。我喜欢从命令行使用git,所以这不是问题
总之,IDE是非常有用的。我希望有机会在Indigo Eclipse上试用最新的cdt,但到目前为止,我还没有太多真正的理由来研究
我不能对Netbeans发表评论,但我可以为您提供有关Eclipse的信息。我在UNIX系统上使用C++,在探索我所知甚少的大型代码库时,我已经开始使用Eclipse。我不使用它来构建,但将我们的构建系统与它集成会很容易,因为只需要命令。
Eclipse拥有您想要的大部分内容:(我指的是Eclipse/CDT)
-
您不仅可以完全自定义语法高亮显示,还可以让它使用模板格式化代码。我的公司有一个用于函数和条件代码的间距、制表符和格式的代码标准,我几乎不费吹灰之力就可以修改现有的模板来满足我们的代码标准。
-
导航还不错,如果你高亮显示并悬停在一个变量上,它会在一个小的弹出气泡中显示定义。如果你对一个类型做同样的操作,它会显示类型的定义位置。对于函数,它将显示函数实现的前几行,并可以选择展开它并查看整个函数。我发现所有这些对于代码发现和导航都很好。您还可以高亮显示变量,并使用右键单击菜单选项跳转到其声明。
-
我想,通过代码提示,你指的是像intellisense这样的东西?这就是我在查看大型代码库时使用Eclipse的主要原因。只需点击"。"或"->",一秒钟后您就可以选择了。
-
调试器UI功能强大。您可以在该工具中启动gdb,它允许您像在ddd或Visual C++等工具中一样以图形方式移动代码。它提供了查看寄存器、内存、查看变量等标准功能。
话虽如此,我发现了一些弱点。首先,它并不能很容易地(集成到GUI中)支持CVS和SVN之外的修订控制系统。我为我们公司使用的系统找到了一个插件,但它会喷出XML和Unicode垃圾。只需在命令行中使用修订控件就更容易了。我怀疑这是插件的问题,而不是Eclipse的问题。我希望有更好的工具集成。
第二个抱怨是,对于每个项目,我都必须手动设置包含目录和库路径。也许有了环境变量,这是可以绕过的?或者我可能只是不知道如何正确设置。再说一遍,如果开发人员不清楚如何做到这一点,我认为这是该工具的弱点。
总而言之,我喜欢使用Eclipse。它不是我的主要编辑环境,但我很感激它在大型代码库中的工作。
我是Netbeans的超级粉丝。我和你的处境相似,但创建这个项目非常容易。只要把Netbeans指向代码的检出位置,它就可以自己解决大多数问题。我很少需要做任何配置。不过,需要注意的一点是,如果你的树很大,可能需要一些时间才能完全索引——当它这样做的时候,内存和cpu会被冲洗掉。
与cvs的集成非常棒,哈德逊集成对CB来说非常酷。我自己没有使用过Git,不过我想这是一个很容易的问题。
有一件事让我非常恼火,那就是它在严重依赖模板的代码中表现得不太好。即显示大量关于未找到类型的警告和错误等。
我没有使用过Eclipse的最新版本,我在当前版本之前尝试过主要版本,但放弃了,因为它与makefile等没有同样流畅的项目集成。我发现如果你不想使用它的make系统,那就不太好了——尽管我可能错了。
我不使用提供的任何代码格式,而是更喜欢AStyle之类的格式。我知道NetBeans在Java方面做得很好,但还没有将其用于C++。CDT我似乎记得在格式化C++代码时,特别是在涉及模板的情况下,用缩进做了一些奇怪的事情,但那至少是两年前的事了。
希望其中一些能有所帮助——最好的方法是下载并自己尝试,看看什么对你有用。我们告诉你的一切都是主观的。
我曾经使用MinGW的Netbeans,我刚刚尝试了7.0.1。我目前将EclipseIndigo与CDT和MinGW一起使用——它的性能更好(CPU和内存更少)。
Netbeans创建一个makefile来一直编译,在Eclipse中,您可以直接使用CDT工具链构建,也可以使用Makefile——Eclipse更灵活。
调试:Netbeans在Solaris/Linux中可能更好。
我个人比较喜欢eclipse而不是Netbeans,我认为eclipse更专业。
使用Netbeans 7.0时,有一个特别的问题让我非常难过,那就是它倾向于使用utf8文件,而不是所有的c++项目都是utf8。它会发出关于打开这样一个文件的警告,如果你打开它,会损坏所述文件,这是一种痛苦。
我还没有找到如何正确地让netbeans处理这个问题。显然,编码可以更改,但对于整个项目而言。因此,尽管非ascii字符无法正确显示,但将其更改为us acii可能会阻止此问题。