Linux版C ++ IDE? [关闭]

I want to expand my programming horizons to Linux. A good, dependable basic toolset is important, and what is more basic than an IDE?

I could find these SO topics:

I'm not looking for a lightweight IDE. If an IDE is worth the money, then I will pay for it, so it need not be free.

My question, then:

What good, C++ programming IDE is available for Linux?

The minimums are fairly standard: syntax highlighting, code completion (like intellisense or its Eclipse counterpart) and integrated debugging (e.g., basic breakpoints).

I have searched for it myself, but there are so many that it is almost impossible to separate the good from the bads by hand, especially for someone like me who has little C++ coding experience in Linux. I know that Eclipse supports C++, and I really like that IDE for Java, but is it any good for C++ and is there something better?

The second post actually has some good suggestions, but what I am missing is what exactly makes the sugested IDE so good for the user, what are its (dis)advantages?

Maybe my question should therefore be:

What IDE do you propose (given your experiences), and why?


This is, I think, the 4th "What IDE should I use on Linux" question in a day or two.

Maybe you should look at the date this question was asked... or point the newer questions to here

In the last release, Eclipse has integrated the eclipse.org/linuxtools into its release train - that project aims to make Eclipse a more fully-fledged C/C++ IDE on Linux by integrating Linux-specific tools.

i strongly disagree. a decent ide is important no matter what u'r working on. it drastically increases productivity. i use codeblocks and find that going back to VI is almost impossible. i have coded on Mac, Win and Linux, and although i find visual studio to be the best IDE, codeblocks comes close.

David, perhaps you could detail (own answer …) what exactly you're missing from the toolchain I described that an IDE delivers. As I've said, I've come from a strong IDE background and my productivity increase was the exact inverse of yours.

What refactoring support does Vim offer? In Eclipse (which runs under Linux), I can change the name of any Java method I wish, even if it is called in 300 places. Can you do it easily in Vim?

quant_dev: refactoring requires parsing the source code in some way. As far as I know, no VIM modules do that so the answer to your question is “none.” That's one of the reasons to prefer an IDE for IDE-centered languages such as Java. Since refactoring support (etc) for C++ is so minimal anyway (even in IDEs), this doesn't apply to C++.

hasen: oh but large parts of it can. Scope-aware renaming, for example. And believe me, this is big. And Ecplise (e.g.) can save a lot of work here.

Eclispe has support for Hg, Git, SVN and others via plugins. And startup/splash screens suck huge balls. They suck down resources and offer very little in benefit. And they usually pop up in front of whatever I'm working on while waiting for the app to load. PortableApps and Eclipse need to get rid of them.

Codelite got the same keyboard shortcut as Visual Studio for debugging, making it very user-friendly for Visual addicts.

May be beating an old horse here, but IMO eclipse's GUI is really unmatched. Yes, it's difficult to learn at first, but it's kind of like Vi where the productivity starts to skyrocket after you've climbed the steep learning curve. To prove a point, try pressing Ctrl+3 -- one of the very awesome features in eclipse IMO.

"Cons: uses Spaces for indentation [...] I'm sure this is configurable, but I couldn't find out how to to that." That shows, you haven't really used to tool, otherwise, you'd have eventually found the option.

CodeLite is amazing, like chewing on dentyne ice gum. It'll leave a fresh and minty taste in your mouth. Eclipse, while being featureful, also gives you this vomit after taste when you use it. I know this sounds childish to say, but its really the best metaphor for explaining the "feel" of using them. I'm sure others will agree with me.

+1 for codeblocks and yea, you'll definitely want to learn at least how to compile and run your programs from a shell, cause code::blocks has some blimishes.

Eclipse is not at all lightweight IMHO, Code::Blocks... just

-1 for code blocks. -1 for eclipse. They both change their UI's during debugging. To the point where a novice user usually feels lost. They both can't debug fork. They both have nasty problems with SVN/CVS integration. (Latest Eclipse in tandem with Subclipse is broken in Gnome as of 4/28/11 and crashes every 10 minutes). Setting up source control is a nightmare and integration with these IDE's is just as difficult.

bleepzter -1 for using SVN/CVS to start with ;)

Mercurial, Git and Bazaar which are vastly superior in every way.

It's also really good for c++. It's got the best language parser ever.

I enjoyed Netbeans much more than Eclipse for c++ development.

NetBeans is so much more enjoyable then Eclipse, I really wish more people start to realize that.

After fighting with Eclipse for weeks I found this, switched to NetBeans and Thank you! It has a nicer interface, is more responsive, inuitive and customisable. Beats Eclipse hands down

Another vote here for how much better NetBeans is than Eclipse. It also has by far the best Vim emulation (as a plugin) that I've ever used.

I use it for non-Qt projects as well.

It is nice. I tried it and like it a lot.

confuzatron: No, I use gdb for several reasons. Most importantly, I usually work without any X server running. Also, I'm a bit uncomfortable about the fact that DDD hasn't seen any update in quite a long time. On the other hand, project ownership has just changed and there seem to be changes afoot.

Thanks for the tab info wrt gvim, never new that :)

VS2010 highlights syntax errors without compilation.

Candy true, VS2010 changed a lot of things in this regard and added advanced features for background compilation. But gvim has also added a lot of features via plugins in the meantime. In particular, you can probably get syntax error highlighting without compilation via the clang_complete plugin now. This answer is from 2009 and some parts are outdated. But there have been improvements on all sides so it more or less evens out.

Eclipse CDT "not very useful yet?" Elaboration would be helpful. I find it extremely useful (and easy to use).

"not very useful yet": autocomplete often doesn't work, navigating to declarations or uses of functions doesn't work, syntax highlighting doesn't always work, refactoring doesn't work, etc. It's little better than using vi. The GDB frontend UI is the only thing that makes it worth using at all, IMHO.

I haven't really tried refactoring with the CDT, but the other things seem to work. I will note that I run Eclipse with some pretty big max memory usage configuration parameters (I have 8-12 GB of RAM), but it seems fine.

Last time I tried Eclipse CDT, the syntax/semantics parser for the auto-completion made the whole IDE freeze for 8 seconds every time it got invoked. It made the whole feature useless. I can't believe the thing didn't run in its own thread. This was two years ago, so it's hopefully fixed now. (right?)

I find CDT awesome for my forays into QT and Boost. On windows with Mingw it has it's issues, but in a proper Posix environment auto-complete works great! The navigating to declarations is actually the one glaring hole. But considering that C++ can have multiple identical declarations, I'm not surprised. This is a harder problem to solve than in Java.

I just can add my +1 to this. netbeans has the best c++ language parser i've seen in an ide ; beats eclipse's cdt.

Can you get IntelliSense-ish features to work in Vim+ctags? Not really just auto-complete, but context-sensitive information such as parameter list for function, etc.?

kizzx2: Yes, there are many options.

Good point. But unfortunately GDB has an extremely steep learning curve. I’ve been using it for years now and I still have never used macros, and (although I know this is possible via macros!) any STL code I throw at it cannot be debugged any better than in modern IDEs.

I spent 2 days to master most of commands in GDB. Once you know the raw power of GBD, you will never look back. It will save you a lot of time when you fix the hard-to-find bugs.

You have a point. It is not an IDE as we know it. However it is interesting that the OP voted for that answer! Nailing my colours to the mast: I'm a fan of command line makefiles.

Finally somebody who has some brain... I guess the others just code trivial stuff if they can do everything with emacs/vim.

wow! Regarding the screenshots that really looks amazing! I will definitely give it a try. Do you know if I have to pay for it? (That's not quite clear on the Ultimate++ website)

Nope, it's free as in "speech", "beer" and "ride". They are even quite open about accepting patches, and release very often, so it is as open source as it gets :)