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
...
-
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
-
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
-
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
-
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
-
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
-
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)
-
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
-
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.
-
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
>