[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: what's the best IDE for C programming in Debian?



Star Liu wrote:
When I develop in windows, I use visual studio.net 2008 as my IDE, if
I want to develop in Debian, what's the best the IDE for C
programming?
thanks!

I'm novice at Debian but I also want to express my opinion. I haven't
still tried Visual Studion .NET 2008. When I began to study C++ (in 2003
year) I have seen that it is very flexible and powerful language but ...
most the majority of compilers don't correctly support these C++
possibilities. Moreover, the majority of C++ libraries are very "crooked".

I have fallen in love with templates and generic programming. Then I was
using MS Visual Studio 6.0 as my compiler and IDE (it was the most
popular in my university) but I have seen that it doesn't support fairly
simple C++ possibilities connected with templates. I was forced to use
Service Pack 5 for VS6.0 but even it couldn't solve the problem. Then I
had tried Borland C++ Builder and I hasn't also liked it.

Then I had downloaded GCC 3.4 and have seen that it (with its
implementation of STL) almost fully support ISO 14882 c++ standard.
Regrettably, I hadn't IDE for it under Windows. After I had heard about
Boost libraries I have being trying to build it under Windows (using
various compilers) but it was very ... very! difficult. Furthermore I would like to develop cross-platform libs and apps.

My friends advised me GNU/Linux to be more comfortable for C++ development.

After a very long pause in my developer's life I had even so dared to
install GNU/Linux. I have chosen Debian as a largest distribution with
APT & Debconf and installed it (testing: Lenny).

In Debian I have seen Boost libraries split into a great number of
packages with non-fully-templated libraries precompiled (for 12
architectures). I also in distribution I have found several good C++
libraries for unit-testing, gui, network, xml parsing, database, algorithmic, graph theory and other (which is updated constantly if you have an access to a Debian mirror).

Firstly, I tried Eclipse together with CDT plugin (included in Debian
distribution). I liked it for it large versatility and independence of
programming language, compiler. Eclipse is very plugingable and has very savvy editor (good code-compleption, symbol-browser, error solver). However, in practice, it's a very good IDE for Java but when I had being trying to develop in C++ (widely using templates) with Eclipse I have seen it's not very suitable for C++ development.

Earlier I tried to use Anjuta (a big GNOME C/C++ IDE) but it's has too complex build system (using automake, autoconf). Also I tried KDevelop (a big KDE universal IDE) (in 2006 year) but I had big troubles with debugging.

I want to say that I like to heavily structurize my project's directory tree. It looks like that:
<project-name>
    bin
    build
        <ide-compiler-1>
             [compiler-&-ide-specific project files]
        <ide-compiler-2>
             [compiler-&-ide-specific project files]
        ...
    include
        [.h files]
    obj
        Debug
            src
                [object files]
        Release
            src
                [object files]
    src
        [.cpp files]
    tests
        <test1>
            [nested (complete) project]
        <test2>
            [nested (complete) project]
        ...

Finally, I heared of Code::Blocks IDE. It hasn't included in Debian (WHY???) but you can download .deb-package (for i386 & amd64 architectures) from http://www.codeblocks.org/downloads/5. It is free & open-source (GPL 3.0). It has been developed using wxWidgets 2.8 (linux-ports uses Gtk+ as backend) therefore it is fully cross-platform (there are releases under Windows including variants for use with MinGW).

Code::Blocks has given me pretty good code-completion (such code-completion as used for Java in Eclipse is impossible for C++ because of templates). It uses good compiler (g++, you can indicate gcc version yourself using symlink), frontend for GDB as debugger. Code::Blocks has its own build system (doesn't use configure/automake/autoconf and creates only one "intermediate" file "project.depend") which is very convenient for me. But you can indicate your own makefile if you like it. It is very convenient while using such distribution as Debian. Such IDE gives me a possibility to create project's directory structure I like. Code::Blocks also has plugin system but I haven't tried any 3rd party plugin yet.

P.S. Now I'm using C++ (and IDE for it, of course) for implementation algorithms (from matrix, graph theories) in "generic" way and Code::Blocks is very suitable for me. I think it will be also very suitable for rapid development using wxWidgets etc.


Reply to: