• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 700
  • Last Modified:

Start programming

Hi,

I just switched from Windows XP Professional to Fedora Core 3 (fedora.redhat.com). I am quite used to the desktop, interface, applications etc. but I haven't done any programming on it yet...
I do console C++ programming that uses the DOS kernel, Win32 API programming sans MFC and OpenGL programming that uses the OpenGL framework (opengl.org). I do all this  on MSVC++ and Borland Turbo C++ 3.0.

I want to be able to do atleast two of these (forget about addressing the Linux kernel to make GUI applications for now) on my Linux platform. I demand a GOOD HELP FILE (Like in Borland Turbo C++ 3.0) and an IDE (like in MSVC++).
gcc/g++ I heard is a free cross-platform compiler distributed with Fedora but I can't figure out where the IDE and help files are. In fact, I can hardly even compile simple programs from c(k)onsole! There's one program call KDevelop but I can't figure out much of it.
... and How do I get started on OpenGL and Java on my Fedora box?

Any help is greatly appreciated.

Regards,

Ram
0
ram_einstein
Asked:
ram_einstein
  • 12
  • 4
  • 3
  • +2
3 Solutions
 
stefan73Commented:
Hi ram_einstein,
There's curses, which is the Unix equivalent of DOS conio.
Try these links:
http://heather.cs.ucdavis.edu/~matloff/UnixAndC/CLanguage/Curses.pdf
http://www.gmonline.demon.co.uk/cscene/CS3/CS3-08.html
http://www.arson-network.com/index.php?class=tutorial&subargs=363

GCC is "bare-bones", it doesn't include an IDE. But if you have KDE, you can try KDevelop (http://www.kdevelop.org), which is quite good IDE.

Cheers!

Stefan
0
 
gtkfreakCommented:
For GUI based programming using GTK+/Gnome, you can download the Anjuta IDE from the following site:
http://www.anjuta.org

You can choose different types of projects using Anjuta. Console (non-GUI) through to GUI.
0
 
ram_einsteinAuthor Commented:
Hi Stefan,

>> DOS conio
DOS conio? You mean the header file? It's isn't an API!

Curses is a whole new API! It has console (maybe platform too) independent functions. But I'd think twice about it because I've had some bad experiences with Glut (an OpenGL platform-independent API). Sure everything is much easier than making Win32 API calls but they don't work half as well! But I'm willing to try curses. Shall I download http://linux.tucows.com/preview/8147.html?
What about the "real" C++? It's also supposed to be platform independent you know... I should be able to write the same (or very similar) code to what I write on Windows (except Win32 API whose API is obviously not portable) and it should compile perfectly because it is setup to communicate with the Linux kernel the same way that it communicated with the Windows/DOS kernel.

>> GCC is "bare-bones", it doesn't include an IDE
Or help files? My God! I didn't believe it when people told me that. I thought there was something more to it. After all the Linux kernel was written on it. Do you know WHY it's just bare-bones? WHY is it so inconvinient? Doesn't anyone use GCC? Surely they can't do "development" without a decent IDE and help files. Anyway, I'd appreciate if if you could just give me a quick start on using it.

>> KDevelop
Yes I have KDE. I'll try that and get back to you.

... and what about OpenGL? The way you put it across, there are hardly any IDEs availible for Linux and nobody does any serious development on it. Where and how do I download the OpenGL libraries and how do I implement it?
As for Java, I know where to download the SDK (http://java.sun.com/j2se/1.4.2/download.html). I don't think I'll need any help there.

Regards,

Ram
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
ram_einsteinAuthor Commented:
gtkfreak: Sounds interesting. I'll try it. Thanks.
0
 
WKalataCommented:
I've been out of the linux circle for a while as I've been employed as an IT Director for a company using Windows almost in entirety for nearly the last year, but here are some suggestions:

Anybody expecting a point-and-click development environment in linux, equatable to what they're used to with MSVC++ is in for a little bit of a disappointment.

The Eclipse project (www.eclipse.org) looks like an interesring possibility.

For the help files you seek, i'd suggest learning the man command as best as you can.  (for an example, open a console and type "man socket")  GCC is based on standards and therefor doesn't have too many help files, other than to help you with using GCC as a compiler.  The included libraries are all of c/c++'s standard libraries, with the addition of POSIX and BSD standard libraries, with the occasional GNU extension.  

The evolution of the linux programmer is just different from the evolution of the windows programmer.  The reason for the lack of comparable toolsets and environment is simply because the vast majority of linux programmers are writing their code with emacs or vim, manually writing up their own makefiles, and they tend to be very effecient at doing it.  They -DO-, however, script the living hell out of their code editors.  I would suggest becoming fluent in either vim or emacs.  I'd personally recommend vim, which has a higher learning curve but seems to be faster for me when it comes to doing what I'd like to do with an editor.  Emacs is very respectable, too, and I've seen it compared to its own miniature operating system at times.

http://www.vim.org/scripts/index.php is an official source for vim scripts.
Emacs scripts you could probably find through google.

SDL (simple directmedia layer) is another project that might give you back something you've lost, its project page is at
http://www.libsdl.org/ .

I personally have no experience working with OpenGL but I've seen some pretty nice things done with SDL.  You would have to read into it yourself to see if it is better than (or more than a frontent to) glut.

I hope my rusty knowledge has been any help to you.
0
 
stefan73Commented:
Sure you can do development without an IDE! Welcome to the world of vi :-)

Having a full-scale IDE isn't GCC's mission (see http://gcc.gnu.org/gccmission.html for details), it's a powerful, highly portable command-line compiler. But sure, it comes with an online help: http://gcc.gnu.org/onlinedocs/

Yes, curses is a new API. But when you look at the similarities of the call names, it's plain to see the DOS guys in Redmond have "borrowed" lots of its ideas from the curses lib.
0
 
ram_einsteinAuthor Commented:
Hi WKalata,

I find your explaination very useful. Thank you. Looks like programmers on Linxu are too high-tech to use IDEs. They just use vi(m) and gcc. ...and I thought "real" development required an IDE.
... and yes. vim. I've already started learning it. Initially, I thought it was a good-for-nothing text editor without a GUI and far worse than Windows notepad. That might just change in a few days.
Forget Eclipse. If that's how programmers on Linux do it (using vi and gcc), I'll do it that way too. I might try Anjuta (gtkfreak) or KDevelop (stefan73) to get me started though.
... and what do I do with SDL??? I've downloaded the runtime library. The tutorials cover setting it up on Visual Studio 6.0 or .NET except http://cone3d.gamedev.net/cgi-bin/index.pl?page=tutorials/ogladv/tut1. I'll read it up and get back to you.

As for installing KDevelop, I'm having some other package dependency problems. Hopefully it'll be resolved soon and I'll get back to you stefan73.
... and thanks for that online doc on gcc!

Regards,

Ram
0
 
tauchrisCommented:
As far as HELP/documentation goes, another good source for GCC docs is the info pages that are usually installed along with the compiler.  Info pages are hyperlinked and the whole bit.  Try

> info gcc

Still not quite as convenient as the help docs commonly availble on Windoze, but you should be able to find what you need there.

Regards,
Chris
0
 
ram_einsteinAuthor Commented:
Hi all,

Please forgive me for my late response. I'm really sorry.
I'm facing a major problem in installing KDevelop. I would really appreciate it if you could help me out of it.
I have KDE desktop environment 3.4 including packages kdebase, kdelibs, arts, kdemultimedia and a few others listed on http://mirrors.isc.org/pub/kde/stable/3.4/RedHat/Fedora3/i386/
I tried downloading kdevelop but the dependency tree seems to go on forever and I ended up downlaoding 10 other packages. I then decided that yum would be the best option so I did a 'yum install kdevelop'. After churning for a few minutes and resolving the dependency tree it returned:
Error: Missing Dependency: kdelibs = 6:3.3.1-2.9.FC3 is needed by package kdelibs-devel
Error: Missing Dependency: arts = 8:1.3.1-1 is needed by package arts-devel

but I already have kdelibs-3.4.0-0.fc3 and arts-1.4.0-0.fc3 installed! Why (how) do I need to degrade to a lower version?

Please advice.

Regards,

Ram
0
 
ram_einsteinAuthor Commented:
I can't install Anjuta either because I'm on KDE not GNOME! I really wanted to get started on using an IDE before I go on the th professional "command-line" programming with vim and gcc/g++.
0
 
WKalataCommented:
I would suggest going to this site on kdevelop.org
http://www.kdevelop.org/index.html?filename=3.2/download.html
and try compiling/installing from source.  You have a greater array of options and control with library search patchs and such, when using that method.
0
 
ram_einsteinAuthor Commented:
That was a quick reply! Thanks WKalta. I never compile from source because I experience hundreds of millions of errors that I can't understand usually. As a result, I HAVE NEVER successfully compiled a SINGLE program from source even thought I made 4-5 attempts with different programs. But I'll give this one a shot like you suggested. It might be my first success!

Regards,

Ram
0
 
ram_einsteinAuthor Commented:
This must be very annoying:
checking for Qt... configure: error: Qt (>= Qt 3.2) (headers and libraries) not found. Please check your installation!

qt-3.3.4-0.fc3.0.i386.rpm
qt-config-3.3.4-0.fc3.0.i386.rpm
qt-designer-3.3.4-0.fc3.0.i386.rpm
qt-devel-3.3.4-0.fc3.0.i386.rpm

are all installed! Looks like I made a BIG MISTAKE switching to KDE 3.4
All the programs are still searching for the older libraries.

Please advice.
Thank you,
Regards,

Ram
0
 
ram_einsteinAuthor Commented:
Looks like the > symbol doesn't apply to the line ">= Qt 3.2". I am in such a sticky situation! I'll ditch IDEs altogether and start on command-line programming. I'll read up on gcc/g++ right away.

Regards,

Ram
0
 
ram_einsteinAuthor Commented:
...and I forgot to thank tauchris for his tip. Thanks tauchris. Yep, in terms of convinience, nowehere close to Windoz apps. I miss the Borland compiler a lot. You can just get EXCELLENT help on a topic by right-clicking the keyword. Even getch(). Just right-click and you have a beautiful documentation on where it is defined (conio), what exactly it does, what parameters it takes and what it returns with EXCELLENT examples too!

Looks like I have look back at the Migrozoft devils for development. I also wanted to practice my assembly language for x86. I didn't mention that earlier. It's so easy with tasm and masm. But I'm not giving up yet... but I'll need your help to get past this great hurdle.

Regards,

Ram
0
 
WKalataCommented:
By the way, in case you didn't take my advice on learning about the 'man' command, open a console and type "man getch" :)
0
 
gtkfreakCommented:
Well, if you install the gnome packages in your Linux box, then you can use Anjuta. I use Anjuta for serious development. I have tried kdevelop, but gave up due it dependencies. You need QT + KDE packages to get it going.
0
 
gtkfreakCommented:
One more.... you can also try out gambas. It is similar to VB, but not quite like it.
http://gambas.sourceforge.net.
0
 
ram_einsteinAuthor Commented:
Hi,

I'm terribly sorry for not replying in such a long time. Please forgive me.
I've been trying very hard indeed to force install KDevelop. I might go for the last option: Backup all my data and wipe. Then I can install KDevelop at the installation panel. But this process is quite cumbersome and time consuming but I really want to start developing.

gtkfreak, do I have to run a GNOME desktop for running Anjuta or is it enough if I install the files? I really hate GNOME desktop and am used to KDE :)
I'll go for Anjuta if it's easy to use. I'll try gambas: It's like Win32 (KDE or QT in this case) programming using a GUI (drag-'n'-drop controls), right?

AND HOW ON EARTH DO I GET STARTED WITH >>>OPENGL<<<
I just have to download the libraries. Where can I get it? I can mix some Linux API to get a GUI instead of going for libsdl (WKalata), right? The same way I used to mix some Win32 API with OpenGL instead of using Glut libraries for the GUI. By the way, I can still use Glut libraries in Linux. I'm quite familiar with it even though I don't like it very much.

Regards,

Ram

p.s- My comp isn't exactly in working condition so please excuse me if you don't hear from me for a few days when I'm fixing it.
0
 
gtkfreakCommented:
Anjuta requires Gnome/GTK. You can install these. By default, Fedora Core will choose the Gnome desktop and libraries when you install it. gambas is like VB, with drag and drop. You also get a detailed help file. OpenGL libraries should be on the FC3 CDs.
Anjuta also requires devhelp, which is again on the FC3 CD.
0
 
ram_einsteinAuthor Commented:
and yes... WKalata: I did not take your advice! man getch displays EVERYTHING. Thanks.
0
 
ram_einsteinAuthor Commented:
Finally! I got KDevelop up and running (After a clean wipe). There are a variety of platform-independent APIs availible and I have EVERYTHING installed: qt, kdevelop, ncurses, libgtk, libsdl, libgl, wxwindows etc..
Where do I start? Looks like writing programs directly for the Linux kernel (like Win32 API in windows) isn't very popular. Platform independency is what these toolkits want to achieve.

Anyway, now that I have KDevelop, how do I get started with OpenGL programming? Does the gl library itself have controls to create a window, manage memory (I know it has platform independent varible types like GLuint, GLfloat, GLclamp) etc? I thought that the absence of such commands is what lead to the development of alternate toolkits for GL like OpenGraph, Glut etc. Please tell me if I'm mistaken and I'll be happy to use the functions within the gl library itself. Can I just start with a #include <gl/gl.h>, <gl/glu.h> and <gl/glaux32.h> like in windows or is there something more I have to do?

I am extremely sorry for the delay in replying and posting fresh comments.

Regards,

Ram
0

Featured Post

Receive 1:1 tech help

Solve your biggest tech problems alongside global tech experts with 1:1 help.

  • 12
  • 4
  • 3
  • +2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now