Linux Know-How provides a collection of introductory texts on often needed Linux skills.


C++

g++ filename.C

GNU C++ compiler. The capital "C" is often used for C++ sources. If you need an "integrated development environment" (IDE), kdevelop is really something you would probably like to look at.

How do I compile a simple C++ program?

Just like in c, I open a text editor and write my program. For example, using pico, I write the following program:

//This is a comment (to the end of line, C++ style)

#include <stdio.h>

#include <math.h>

#include <iostream.h>

#include <stdlib.h>

//define a function

double wheeldrop (double dGap, double dDiameter) {

double dDrop, dRadius, dNotDrop;


dRadius = dDiameter * 0.5;

dDrop = dRadius - sqrt( (dRadius*dRadius)-(0.25*dGap*dGap) );


return (dDrop);

} //end of the function


//The function main is the entry point to the program

void main(void) {

double dGap, dDiameter, dDrop, dRadius, dNotDrop; //variables


for (;;) { //infinite loop

cout << "Please enter gap between track segments and \n"

<< "diameter of train wheel in inches (-1 -1 to exit): ";

cin >> dGap >> dDiameter;


if ((dGap == -1) && (dDiameter == -1))

break;

else if (dGap < dDiameter) { //do calculations

dDrop = wheeldrop (dGap, dDiameter);

printf ("The wheel will drop %f inches.\n\n", dDrop);

}

else {

printf ("Error, your train is going to crash.\n Gap bigger then wheel!\n\n");

}

}

}

I save the source to the file "train.c", and then invoke the GNU C++ compiler to compile the file "train.c" to an executable called "traincalc":

g++ -o traincalc train.c

I can then run the executable by typing:

./traincalc


kdevelop

(type in X-terminal) Integrated development environment for K. It is really worth downloading (if it does not come with your distribution).


glade

(type in X-terminal) A graphical builder of user interfaces.

"Glade is an interface builder developed by Damon Chaplin. It allows graphical and interactive construction of Gnome/Gtk graphical user interfaces. From Glade, the generated interface can be saved in a xml file or directly exported to C code to be included in a C source tree. Glade also allows to define the name of the handlers - functions - to be attached to the various event of the interface. For example the function (name) to be called when a specific menu item is pressed." (From: http://linuxtoday.com/news_story.php3?ltsn=2000-07-16-013-04-PS-GN)

What "C" functions are available for programming under Linux?

Too many for a newbie like myself. I started by studying the header files (*.h) in the directory /usr/include and all its subdirectories. To find a header file that contains a prototype for a given function (e.g., cosh) I would do something like:

cd /usr/include

grep -H "cosh" *.h

There are also many interesting libraries that are not a part of a typical distribution, e.g., GNU libraries for scientific computing (GSL): http://sources.redhat.com/gsl/. Also check: http://www.phy.duke.edu/~hsg/sci-computing.html.


Last Update: 2010-12-16