Linux IDE Questions - Linux

This is a discussion on Linux IDE Questions - Linux ; Hey, folks, I'm a Linux newbie with a fair bit of Win32 programming experience and am looking for an IDE to port a large project to Linux -- and also possibly continue primary development in a Linux environment, if I ...

+ Reply to Thread
Results 1 to 9 of 9

Thread: Linux IDE Questions

  1. Linux IDE Questions

    Hey, folks,

    I'm a Linux newbie with a fair bit of Win32 programming experience
    and am looking for an IDE to port a large project to Linux -- and also
    possibly continue primary development in a Linux environment, if I
    find one I like.

    The project is written in Visual C++, but has its own scriping
    language,
    and also has some unusual file types and build steps, like using an
    obscure Yacc variant called ACCENT. I've currently got it to compile
    to binary with KDevelop, but there's a whole bunch of inadequicies
    with
    this IDE -- notably, it has no ability to define custom build steps
    (like
    for ACCENT files or my own homebrew script-language), or perform
    post-build steps (to 'patch' the created executable after the linker
    is
    done with it, which I need to do). KDevelop seems to be very bonded
    to the Automake toolset, which I'm rapidly finding I don't like.
    Anyway,
    I'd like to avoid wasting time porting my project and learning a
    SECOND
    IDE that doesn't meet my needs, so I was wondering if anyone here
    could recommend me a KDE-compatable IDE with the following:

    MUST HAVE
    * Ability to define custom file types and custom compilers, and add
    them
    as dependancies for files that will later go into the C++ compiler.
    KDevelop apparently does not do this.
    * Ability to add post-build steps to the build process (i.e., patch
    the
    executable)
    * Modern GUI features (i.e., I do understand what Emacs is and how
    powerful its lisp interpreter is, but it's just not how I've
    learned to
    develop -- I want something as close in look and feel to Visual
    Studio
    as possible.)
    * Allows setting different compiler options for different source
    files (i.e.,
    KDevelop apparently doesn't do this).
    * Manages different build types (debug and release)

    Essentially, this can all be summed up as "better project and build
    management than KDevelop/Automake".

    VERY MUCH WANT
    * Ability to cope with source code files organized in a directory
    tree
    structure of _my_ choice, rather than imposing one on me, and for
    bonus points letting ME choose where I want to put both the object
    module files and the linked executable.
    * Integrated graphical debugging -- click to set breakpoints, watch
    window
    in the IDE, step through the code.
    * Good compiler settings that present the gcc compiler options in an
    understandable visual format the way Visual Studio does.
    * Ability to navigate the code automatically -- i.e., to click on a
    function
    name and press a key and automatically open the right file and go to
    that function.

    NICE TO HAVE
    There's so many nice features in KDevelop, I don't like giving up on
    it
    (code autocomplete [though I never got this to work, I probably can,
    given
    more time], AStyle, Doxygen). I'd like to have as much of this feature
    richness in whatever IDE I migrate to as possible, but it isn't
    _essential_
    and the custom build steps are: ten minutes of typing at a console
    before
    and after every build is unacceptable.

    ------

    I was specifically looking at Eclipse. Can anyone tell me which of
    the
    features I list above it supports before I invest the time to start
    learning
    it?

    ------

    If there IS no Linux IDE that does this stuff, can anyone recommend
    me
    towards a readable programmers-perspective tutorial on the web for
    writing
    makefiles by hand? This is a last resort, but it's beginning to look
    like it
    will be necessary.

    Thanks lots for any information you can give,

    -- Julian Mensch


  2. Re: Linux IDE Questions

    Julian Mensch writes:

    > Hey, folks,
    >
    > I'm a Linux newbie with a fair bit of Win32 programming experience
    > and am looking for an IDE to port a large project to Linux -- and also
    > possibly continue primary development in a Linux environment, if I
    > find one I like.


    [...]

    > MUST HAVE
    > * Ability to define custom file types and custom compilers, and add
    > them as dependancies for files that will later go into the C++
    > compiler. KDevelop apparently does not do this.


    make

    > * Ability to add post-build steps to the build process (i.e., patch
    > the executable)


    make

    > * Modern GUI features (i.e., I do understand what Emacs is and how
    > powerful its lisp interpreter is, but it's just not how I've learned
    > to develop -- I want something as close in look and feel to Visual
    > Studio as possible.)


    Relearn using emacs.

    > * Allows setting different compiler options for different source
    > files (i.e., KDevelop apparently doesn't do this).


    make

    > * Manages different build types (debug and release)


    make

    > Essentially, this can all be summed up as "better project and build
    > management than KDevelop/Automake".
    >
    > VERY MUCH WANT
    > * Ability to cope with source code files organized in a directory
    > tree structure of _my_ choice, rather than imposing one on me, and
    > for bonus points letting ME choose where I want to put both the
    > object module files and the linked executable.


    make

    > * Integrated graphical debugging -- click to set breakpoints, watch
    > window in the IDE, step through the code.


    emacs

    > * Good compiler settings that present the gcc compiler options in an


    man gcc

    > understandable visual format the way Visual Studio does.


    That is an oxymoron. The compiler settings dialog is probably the
    part of visual studio I dislike the most. Well, after locking up the
    entire computer of course.

    > * Ability to navigate the code automatically -- i.e., to click on a
    > function name and press a key and automatically open the right file
    > and go to that function.


    etags + emacs

    > NICE TO HAVE
    > There's so many nice features in KDevelop, I don't like giving up
    > on it (code autocomplete [though I never got this to work, I
    > probably can, given more time], AStyle, Doxygen). I'd like to have


    Emacs does that too.

    > as much of this feature richness in whatever IDE I migrate to as
    > possible, but it isn't _essential_ and the custom build steps are:
    > ten minutes of typing at a console before and after every build is
    > unacceptable.


    Are a few keystrokes in emacs too much?

    > I was specifically looking at Eclipse. Can anyone tell me which of
    > the features I list above it supports before I invest the time to
    > start learning it?


    Very few in anything resembling a usable manner. Eclipse was designed
    for Java development with other bits shoehorned onto it afterwards.

    > If there IS no Linux IDE that does this stuff, can anyone


    Linux *is* an IDE. It doesn't need an all-in-one package that
    reimplements everything poorly.

    > recommend me towards a readable programmers-perspective tutorial on
    > the web for writing makefiles by hand? This is a last resort, but
    > it's beginning to look like it will be necessary.


    Read the texinfo manual for GNU make and Peter Miller's paper:
    http://miller.emu.id.au/pmiller/books/rmch/

    --
    Måns Rullgård
    mans@mansr.com

  3. Re: Linux IDE Questions

    Måns Rullgård wrote:
    >>* Modern GUI features (i.e., I do understand what Emacs is and how
    >>powerful its lisp interpreter is, but it's just not how I've learned
    >>to develop -- I want something as close in look and feel to Visual
    >>Studio as possible.)

    >
    > Relearn using emacs.


    Hm, makes me wonder what does exactly 'modern GUI features' mean. That
    is so vague. Julian, please explain?

    >>* Integrated graphical debugging -- click to set breakpoints, watch
    >>window in the IDE, step through the code.

    >
    > emacs


    After all your replies (I agree with 'make' being the right solution for
    most of the stuff), I'm contemplating on learning emacs. Two questions:

    - where do I learn about stuff like debugging in emacs (some tutorial?)
    - which emacs version to use?


    >>* Ability to navigate the code automatically -- i.e., to click on a
    >>function name and press a key and automatically open the right file
    >>and go to that function.

    >
    > etags + emacs


    Yes, this as well. Is there some kind of reasonably short Emacs cookbook
    to learn things like this?


    --
    Milan Babuskov
    http://abrick.sourceforge.net

  4. Re: Linux IDE Questions

    >>>>> "Julian" == Julian Mensch writes:

    Julian> VERY MUCH WANT * Ability to cope with source code files
    Julian> organized in a directory tree structure of _my_ choice,
    Julian> rather than imposing one on me, and for bonus points
    Julian> letting ME choose where I want to put both the object
    Julian> module files and the linked executable.

    Learn to write Makefiles. They're useful and very flexible. esp.
    when using GNU make. Most IDEs can invoke make (including Borland's
    IDE's for DOS!) So, this is a learn once and for all tool. I myself
    use Emacs as the IDE and invoke make from Emacs, which helps me jump
    to the offending lines when there are compiler errors. Very handy.I
    belive that KDevelop can also invoke make to do a build, and bring you
    to the offending source lines when there are errors.



    Julian> * Integrated graphical debugging -- click to set
    Julian> breakpoints, watch window in the IDE, step through the
    Julian> code.

    Emacs also has these. (It is a nice frontend for gdb.) You just need
    to learn how to use it. Don't KDevelop have such a thing, too?


    Julian> * Good compiler settings that present the gcc compiler
    Julian> options in an understandable visual format the way Visual
    Julian> Studio does.

    Read gcc's manuals and man pages for the options available. Inside
    Emacs, type C-h i d m gcc RET. This shows you GCC's info pages, which
    are well organized AND searchable with regular expressions. (There is
    also a searchable index: press "i" and enter a word. "," to continue
    with the next search.)

    After finding the options, you can easily insert it into your
    Makefile. Add the options to your CFLAGS variable in the Makefile,
    for C source code, or CXXFLAGS for c++.


    Julian> * Ability to navigate the code automatically -- i.e., to
    Julian> click on a function name and press a key and automatically
    Julian> open the right file and go to that function.

    You need to click on a function name? (That means you have to find
    the function name, and scroll it into view first?) With ctags/etags,
    you can JUMP to any identifier (including function names) quickly by
    typing it. That's much faster than clicking! See "man etags" or "man
    ctags". It's convenient to add targets for invoking ctags/etags in
    your Makefile.

    If you really want a code browser that lists the function names,
    install the ECB package for Emacs, start Emacs and type M-x
    ecb-activate. There you go!


    Julian> NICE TO HAVE There's so many nice features in KDevelop, I
    Julian> don't like giving up on it (code autocomplete [though I
    Julian> never got this to work, I probably can, given more time],
    Julian> AStyle, Doxygen). I'd like to have as much of this feature
    Julian> richness in whatever IDE I migrate to as possible, but it
    Julian> isn't _essential_ and the custom build steps are: ten
    Julian> minutes of typing at a console before and after every
    Julian> build is unacceptable.

    Just fire up Emacs. Then, type M-x compile RET. When asked the
    compile command, type the command as you would at a console. Then,
    watch the output from Emacs. What Emacs highlight the error lines.
    (Depending on the distro's defaults, you may need to do a M-x
    global-font-lock-mode RET beforehand.) Press C-` to jump to the next
    error message, displaying the offending source line at the same time.


    Julian> I was specifically looking at Eclipse. Can anyone tell
    Julian> me which of the features I list above it supports before I
    Julian> invest the time to start learning it?

    Most, if not all.


    Julian> If there IS no Linux IDE that does this stuff,

    Emacs has been doing those things and more. Indeed, many of the
    features in those IDE's appeared in Emacs first.


    Julian> can anyone recommend me towards a readable
    Julian> programmers-perspective tutorial on the web for writing
    Julian> makefiles by hand?

    Start Emacs. Then, type: C-h i d m make RET.


    Julian> This is a last resort, but it's beginning to look like it
    Julian> will be necessary.

    Make is a useful and flexible utility. It worths investing some time
    to learn it. It's much more flexible that those rigid "project" files
    of those GUI IDEs. Haven't you realized that even Microsoft's tools
    include a "nmake.exe" tool?

    Things like compiling a YACC (or Bison) file into C/C++ and then
    compiling that one into executable can be easily written in Makefiles.
    GNU make even supports "default rules", eliminating the need to write
    any Makefiles for simple cases. E.g. put a simple hello_world.cc
    source file in a directory. Then, type "make hello_world". GNU make
    will automagically determine that it should invoke "g++ -o hello_world
    hello_world.cc" to compile it. There is no need to write a Makefile
    for such a trivial case!


    --
    Lee Sau Dan §õ¦u´° ~{@nJX6X~}

    E-mail: danlee@informatik.uni-freiburg.de
    Home page: http://www.informatik.uni-freiburg.de/~danlee

  5. Re: Linux IDE Questions

    >>>>> "Milan" == Milan Babuskov writes:

    Milan> After all your replies (I agree with 'make' being the right
    Milan> solution for most of the stuff), I'm contemplating on
    Milan> learning emacs. Two questions:

    Welcome to Emacsland!


    Milan> - where do I learn about stuff like debugging in emacs
    Milan> (some tutorial?)

    Read the Info! Make sure you have the info pages installed. Check
    Emacs's info pages and look for "debugging" or "gud". Inside emacs,
    type:

    C-h i d m emacs RET s gud RET


    Milan> - which emacs version to use?

    I'd recommend the latest _stable_ version. I'm using 21.4.*.


    >>> * Ability to navigate the code automatically -- i.e., to click
    >>> on a function name and press a key and automatically open the
    >>> right file and go to that function.

    >> etags + emacs


    Milan> Yes, this as well. Is there some kind of reasonably short
    Milan> Emacs cookbook to learn things like this?

    man etags. Also, check Emac's info pages.

    C-h i d m emacs RET s tags RET

    Another cool thing to try is M-x speedbar RET.


    Also check out the packages ECB, semantic. For developing Java
    programs, don't miss the JDEE package. (These do not come bundled
    with standard GNU Emacs. But Debian has got them in additional
    packages. I just needed to "apt-get install" them.)


    --
    Lee Sau Dan §õ¦u´° ~{@nJX6X~}

    E-mail: danlee@informatik.uni-freiburg.de
    Home page: http://www.informatik.uni-freiburg.de/~danlee

  6. Re: Linux IDE Questions

    On May 22, 12:06 pm, Julian Mensch wrote:

    > I'm a Linux newbie with a fair bit of Win32 programming experience
    > and am looking for an IDE to port a large project to Linux -- and also
    > possibly continue primary development in a Linux environment, if I
    > find one I like.

    [...]
    > If there IS no Linux IDE that does this stuff, can anyone recommend
    > me towards a readable programmers-perspective tutorial on the web for
    > writing makefiles by hand? This is a last resort, but it's beginning to look
    > like it will be necessary.


    The emacs faithful have had their say. I would mention that vim can
    also to all of this but we don't need the emack<->vi(m) flamewar
    that's been going on since prehistoric times.

    What I would suggest is for you to try out as many of the other GUI
    IDE tools that are out there. You aren't likely to find a Visual
    Studio clone so you'll probably need to adjust your requirements.
    There's tons of free (as in beer) and free (as in speech) options out
    there. Just look through the repositories of the distro you're
    running and I'll bet there's a bunch there already. Digging through
    freshmeat would be helpful, too.

    One thing to remember; there is no silver bullet. If anyone tells you
    that only program XYZ can do everything it just means they don't know
    what they're talking about.

    Joe
    (Who still misses ISPF under MVS on a 3270 making apps with VS COBOL
    II)


  7. Re: Linux IDE Questions

    X-Nc wrote:

    > On May 22, 12:06 pm, Julian Mensch wrote:
    >
    >> I'm a Linux newbie with a fair bit of Win32 programming experience
    >> and am looking for an IDE to port a large project to Linux -- and also
    >> possibly continue primary development in a Linux environment, if I
    >> find one I like.

    > [...]
    >> If there IS no Linux IDE that does this stuff, can anyone recommend
    >> me towards a readable programmers-perspective tutorial on the web for
    >> writing makefiles by hand? This is a last resort, but it's beginning to
    >> look like it will be necessary.

    >
    > The emacs faithful have had their say. I would mention that vim can
    > also to all of this but we don't need the emack<->vi(m) flamewar
    > that's been going on since prehistoric times.
    >
    > What I would suggest is for you to try out as many of the other GUI
    > IDE tools that are out there. You aren't likely to find a Visual
    > Studio clone so you'll probably need to adjust your requirements.
    > There's tons of free (as in beer) and free (as in speech) options out
    > there. Just look through the repositories of the distro you're
    > running and I'll bet there's a bunch there already. Digging through
    > freshmeat would be helpful, too.


    kdevelop isn't bad for some types of jobs. Generates autoconf + makefiles
    too. Nice editor, reasonable debugger, good selection of get-you-started
    template projects. Best if you like QT or KDE application programming, but
    can generate other projects to varying degrees.

    Cheers

    Tim

  8. Re: Linux IDE Questions

    LEE Sau Dan writes:

    >>>>>> "Milan" == Milan Babuskov writes:

    >
    > Milan> After all your replies (I agree with 'make' being the right
    > Milan> solution for most of the stuff), I'm contemplating on
    > Milan> learning emacs. Two questions:
    >
    > Welcome to Emacsland!
    >
    >
    > Milan> - where do I learn about stuff like debugging in emacs
    > Milan> (some tutorial?)
    >
    > Read the Info! Make sure you have the info pages installed. Check
    > Emacs's info pages and look for "debugging" or "gud". Inside emacs,
    > type:
    >
    > C-h i d m emacs RET s gud RET
    >
    >
    > Milan> - which emacs version to use?
    >
    > I'd recommend the latest _stable_ version. I'm using 21.4.*.


    22 runs like a charm. I am using 23.

    >
    >
    > >>> * Ability to navigate the code automatically -- i.e., to click
    > >>> on a function name and press a key and automatically open the
    > >>> right file and go to that function.
    > >> etags + emacs

    >
    > Milan> Yes, this as well. Is there some kind of reasonably short
    > Milan> Emacs cookbook to learn things like this?
    >
    > man etags. Also, check Emac's info pages.


    etags is ok, but a little second rate. Look up cscope. Much better.

    >
    > C-h i d m emacs RET s tags RET
    >
    > Another cool thing to try is M-x speedbar RET.
    >


    Speedbar is a monstrosity IMO. Takes up to omuch real estate, ignores
    refreshes and is plain ugly.

    >
    > Also check out the packages ECB, semantic. For developing Java
    > programs, don't miss the JDEE package. (These do not come bundled
    > with standard GNU Emacs. But Debian has got them in additional
    > packages. I just needed to "apt-get install" them.)


    ecb and semantic can be useful.

    A better idea is to find and install lthe CVS CEDET package which
    greatly simplifies their usage.

  9. Re: Linux IDE Questions

    Julian Mensch schrieb:
    I use Codeblocks. It is available for Win32 and linux. So you can start
    on win32 first and use the same project file for linux. So no make no
    emacs ;-)
    I use the wxWidgets library that gives you a Widgets library and some
    mode classes (pretty same as MFC)
    HTH,
    Adib.
    --
    > Hey, folks,
    >
    > I'm a Linux newbie with a fair bit of Win32 programming experience
    > and am looking for an IDE to port a large project to Linux -- and also
    > possibly continue primary development in a Linux environment, if I
    > find one I like.
    >
    > The project is written in Visual C++, but has its own scriping
    > language,
    > and also has some unusual file types and build steps, like using an
    > obscure Yacc variant called ACCENT. I've currently got it to compile
    > to binary with KDevelop, but there's a whole bunch of inadequicies
    > with
    > this IDE -- notably, it has no ability to define custom build steps
    > (like
    > for ACCENT files or my own homebrew script-language), or perform
    > post-build steps (to 'patch' the created executable after the linker
    > is
    > done with it, which I need to do). KDevelop seems to be very bonded
    > to the Automake toolset, which I'm rapidly finding I don't like.
    > Anyway,
    > I'd like to avoid wasting time porting my project and learning a
    > SECOND
    > IDE that doesn't meet my needs, so I was wondering if anyone here
    > could recommend me a KDE-compatable IDE with the following:
    >
    > MUST HAVE
    > * Ability to define custom file types and custom compilers, and add
    > them
    > as dependancies for files that will later go into the C++ compiler.
    > KDevelop apparently does not do this.
    > * Ability to add post-build steps to the build process (i.e., patch
    > the
    > executable)
    > * Modern GUI features (i.e., I do understand what Emacs is and how
    > powerful its lisp interpreter is, but it's just not how I've
    > learned to
    > develop -- I want something as close in look and feel to Visual
    > Studio
    > as possible.)
    > * Allows setting different compiler options for different source
    > files (i.e.,
    > KDevelop apparently doesn't do this).
    > * Manages different build types (debug and release)
    >
    > Essentially, this can all be summed up as "better project and build
    > management than KDevelop/Automake".
    >
    > VERY MUCH WANT
    > * Ability to cope with source code files organized in a directory
    > tree
    > structure of _my_ choice, rather than imposing one on me, and for
    > bonus points letting ME choose where I want to put both the object
    > module files and the linked executable.
    > * Integrated graphical debugging -- click to set breakpoints, watch
    > window
    > in the IDE, step through the code.
    > * Good compiler settings that present the gcc compiler options in an
    > understandable visual format the way Visual Studio does.
    > * Ability to navigate the code automatically -- i.e., to click on a
    > function
    > name and press a key and automatically open the right file and go to
    > that function.
    >
    > NICE TO HAVE
    > There's so many nice features in KDevelop, I don't like giving up on
    > it
    > (code autocomplete [though I never got this to work, I probably can,
    > given
    > more time], AStyle, Doxygen). I'd like to have as much of this feature
    > richness in whatever IDE I migrate to as possible, but it isn't
    > _essential_
    > and the custom build steps are: ten minutes of typing at a console
    > before
    > and after every build is unacceptable.
    >
    > ------
    >
    > I was specifically looking at Eclipse. Can anyone tell me which of
    > the
    > features I list above it supports before I invest the time to start
    > learning
    > it?
    >
    > ------
    >
    > If there IS no Linux IDE that does this stuff, can anyone recommend
    > me
    > towards a readable programmers-perspective tutorial on the web for
    > writing
    > makefiles by hand? This is a last resort, but it's beginning to look
    > like it
    > will be necessary.
    >
    > Thanks lots for any information you can give,
    >
    > -- Julian Mensch
    >


+ Reply to Thread