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?
I am using "Geany" found good so far, its fast and light weight IDE.
Among Geany’s features are:
A quick answer, just to add a little more knowledge to this topic:
You must definitely check out NetBeans. Netbeans 6.7 has the following features:
I think it's a perfect (and far better) Visual Studio substitution, and a very good tool to learn C/C++.
Good Luck!
Although I use Vim, some of my co-workers use SlickEdit which looks pretty good. I'm not certain about integrated debugging because we wouldn't be able to do that on our particular project anyway.
SlickEdit does have good support for navigating large code bases, with cross referencing and tag jumping. Of course it has the basic stuff like syntax highlighting and code completion too.
My first source were actually the tools'
man
pages. Just typeon the command line (
$
here is part of the prompt, not the input).Depending on the platform, they're quite well-written and can also be found on the internet. In the case of
make
, I actually read the complete documentation which took a few hours. Actually, I don't think this is necessary or helpful in most cases but I had a few special requirements in my first assignments under Linux that required a sophisticated makefile. After writing the makefile I gave it to an experienced colleague who did some minor tweaks and corrections. After that, I pretty much knewmake
.I used GVIM because I had some (but not much) prior experience there, I can't say anything at all about Emacs or alternatives. I find it really helps to read other peoples'
.gvimrc
config file. Many people put it on the web. Here's mine.Don't try to master all binutils at once, there are too many functions. But get a general overview so you'll know where to search when needing something in the future. You should, however, know all the important parameters for
g++
andld
(the GCC linker tool that's invoked automatically except when explicitly prevented).Syntax highlighting: yes, and a much better one than Visual Studio. Code completion: yes-ish. First, I have to admit that I didn't use C++ code completion even in Visual Studio because (compared to VB and C#) it wasn't good enough. I don't use it often now but nevertheless, GVIM has native code completion support for C++. Combined with the ctags library and a plug-in like taglist this is almost an IDE.
Actually, what got me started was an article by Armin Ronacher. Before reading the text, look at the screenshots at the end of it!
Yes. But this is the same for Visual Studio, isn't it (I've never used Whole Tomato)? Of course, the syntax highlighting will show you non-matching brackets but that's about all.
I use
gdb
which is a command-line tool. There's also a graphical frontend calledDDD
.gdb
is a modern debugging tool and can do everything you can do in an IDE. The only thing that really annoys me is reading a stack trace because lines aren't indented or formatted so it's really hard to scan the information when you're using a lot of templates (which I do). But those also clutter the stack trace in IDEs.You shouldn't even try to compare a modern, full-feature editor like Emacs or GVIM to Notepad. Notepad is an embellished
TextBox
control, and this really makes all the difference. Additionally, working on the command line is a very different experience in Linux and Windows. The Windowscmd.exe
is severely crippled. PowerShell is much better./EDIT: I should mention explicitly that GVIM has tabbed editing (as in tabbed browsing, not tabs-vs-spaces)! It took me ages to find them although they're not hidden at all. Just type
:tabe
instead of plain:e
when opening a file or creating a new one, and GVIM will create a new tab. Switching between tabs can be done using the cursor or several different shortcuts (depending on the platform). The keygt
(type g, then t in command mode) should work everywhere, and jumps to the next tab, or tab no. n if a number was given. Type:help gt
to get more help.I use Eclipse CDT and Qt Creator (for Qt applications).
That's my preferences. It's a very suggestive question and there is as many answers as there is developers. :)
At least for Qt specific projects, the Qt Creator (from Nokia/Trolltech/Digia) shows great promise.