tags:

views:

429

answers:

13

Possible Duplicate:
What is the best IDE for C Development / Why use Emacs over an IDE?

I'm looking for a C IDE that I can use for my Computer Science class. An ideal IDE would feature a built-in compiler and debugger within the program, as Eclipse for Java, or Visual Studio for C#, already do.

Do any such IDEs exist, or am I being foolishly optimistic?

I'm looking for some way to avoid programming in notepad like I did last semester...

+6  A: 

If you like Eclipse, there is the Eclipse CDT.

If you like Visual Studio, there is Visual C++ Express.

Kristopher Johnson
Forgive my ignorance, but let's make sure I have this correct-- I can download a plugin (or whatever its actually called) that adds the ability to run, debug, and compile C programs into the version of Eclipse I already have (Helios, the latest)?
Raven Dreamer
@Raven yes you can
Samuel_xL
Last I checked, you still had to have your own toolchain (MinGW, Cygwin, etc.) with Eclipse CDT. I.e. the CDT isn't an all in one package as suggested.
Ioan
It's true that Eclipse CDT doesn't include a toolchain, but as he was using Notepad to develop his C programs before, I assume he will be able to deal with that.
Kristopher Johnson
A: 

You could try Dev c++, downloadable here: http://download.cnet.com/Dev-C/3000-2069_4-12686.html

Live
why the downvotes?
Sanjay Manohar
Agreed, why the downvote. Dev-C++ is a free IDE that comes with the MinGW compiler, which is a gcc compiler that produces binaries that are compatible with what Visual C produces.
bart
Homepages: [MinGW](http://www.mingw.org/), [Dev-C++](http://www.bloodshed.net/devcpp.html)
bart
+3  A: 

Both Eclipse (with the C/C++ Development Tooling plugin) and NetBeans (with the C/C++ Development plugin) are good.

Since you use Eclipse for Java, I would recommend starting there. I personally use NetBeans, but I think that it's important to use a tool you are comfortable with.

Thomas Owens
+8  A: 

There is at least one such IDE for windows: Visual Studio (or Visual C++ Express). If you can relax the 'built-in compiler' requirement, there's a whole truckload to choose from:

  • Eclipse (with C/C++ plugin and a gcc port, e.g. MinGW)
  • NetBeans (dito, and my personal favourite)
  • Code::Blocks
  • KDevelop (not sure if there's a windows version, probably not)

All of them are free (in the beer sense).

tdammers
Why the downvotes?
Matteo Italia
I have to wonder about this to... +1 just to help out, as the answer is good.
mathepic
+1 for an informative answer. The SO FAQ says to downvote misinformation. I would guess though that the downvotes have come from people who simply disagree.
dreamlax
@Matteo: Because he has Visual Studio in his answer. ;) I agree, +1.
musicfreak
+1 GNU reference.
Shiftbit
+1  A: 

Pretty much and C++ IDE would also support C. Visual Studio Express has options which will flag non ANSI-C usage as errors or warnings, as does gcc under Eclipse IIRC.

Joel
Can you describe these options? Unless its new in VS2010, I've always received hints and suggestions for non-ANSI C (and non-standard, Windows only C++) methods when using Visual Studio for C/C++ development.
Thomas Owens
/Za to disable extensions (http://msdn.microsoft.com/en-us/library/0k0w269d.aspx); /TC to force compilation as C even with non-c file extension (http://msdn.microsoft.com/en-us/library/032xwy55.aspx).
Matteo Italia
+2  A: 

There's the Visual Studio Express C++ edition.

Yes it's C++ but it will compile C.

ChrisF
+2  A: 

You can develop with C in Visual Studio/Visual C++.

Gerald
+1  A: 

CodeBlocks is nice. http://www.codeblocks.org/

You can use the cygwin install to set up gcc and gdb. Then point CodeBlocks to the correct compiler and debugger paths. The documentation should be pretty straight forward, but I haven't messed with it in a while.

-Matt

mledbetter
+3  A: 

How about Code::Blocks or Visual Studio 2010 C++ Express?

Carlos
Both of these have been suggested before in other answers.
ChrisF
+11  A: 

This will probably get me a lot of down votes, but I gotta do this...

Vim

This is not really an IDE, but it supports all kinds of plugins, for instance for gdb, autotools, etc. Effectively, making it an IDE.

polemon
Using ctags with vim is also very useful.
bde
+1 because vim is really powerful.
Octavian Damiean
+1 Anyone who downvotes this hasn't tried Vim. Not to say its the _best_, but its hard to say its not _good_.
mathepic
I spent some time trying out Vim, and while I like it, I wouldn't use it over a full-blown IDE such as Visual Studio for C coding. Maybe for dynamic languages like JavaScript or Python, but not for C. Visual Studio with Visual Assist takes the cake by far, IMO.
musicfreak
Meh! The reason you risk getting down votes is you didn't suggest *emacs*, you heretic!
dmckee
A: 

You could try Eclipse but I find it too bloated and slow.

I prefer good old Vim in combination with cscope/ctags. You can also build/fix code from Vim.
Vim also has support for most versioning software so you can simply checkout/checkin from Vim.

Paul Praet
+1  A: 

If you're just starting out with C programming you're going to benefit enormously from using just an editor and a shell versus a full IDE. I agree (heartily) with the notepad comment -- editing source code without syntax highlighting is one of the most painful things known to man -- but to what extent do you need an integrated debugger or versioning system?

That is to say: do you need your editor to include a debugger because you don't understand how to use it otherwise? The solution here isn't to find an Eclipse plugin, it's to read the man page for gdb and learn to use it. The same goes for version control -- look up an introduction to Git or Mercurial and learn how to use the command-line tools.

IDEs have their place in large projects, but if you don't understand the complexity that Eclipse (or whatever) is hiding from you then you won't know how to fix it when it breaks, or how to do something that the IDE can't handle for you.

Code::Blocks is a good minimal IDE for C/C++; SciTE is a nice syntax-highlighting editor. Install one of these, plus the cygwin tools to get a compiler, debugger, and profiler, and you've got a great, flexible development environment that can handle anything you'll need to write as part of your CS degree.

Doches
A: 

Well, since nobody else said it: Emacs. It ships with gud-mode (grand unified debugger), a handy compilation mode, and several other useful things like tags support.

Never, ever program in notepad. Vi and its descendants will get you about as far. Whether they are better or not is a matter of religion.

Nathon
There is no call to bash vim. People who use it well are able to get a lot done. They're just weird, that's all.
dmckee
Who's bashing vim?
Nathon
Uh...I think I misread you second paragraph. My fault.
dmckee