This is an excerpt from the TFUG mailing list.
Date: Wed, 30 Dec 1998 20:36:13 -0700 To: tfug@listserv.azstarnet.com From: murphy@U.Arizona.EDU Subject: Re: More fun with C++ On Wed, Dec 30, 1998 at 07:42:02AM -0700, theduck wrote: > Well, those URLs are probably good tutorials on C/C++, but that's > not what I need. All i'm looking for is some sort of information on using > gcc or something similar to compile C++, some listings of the Unix > specific includes (pthread.h, etc...), and most of all something about the > wonder that is a.out. The man pages and such are frightfully useless... > Thanks for the help, though! :) > Try starting with http://eb-p5.eb.uah.edu/~cohen/cpe203.96f/g++.html. It will give you a few variations on the basic compiler command line. a.out is the default executable name. If "." isn't in your path, you will need to run it with "./a.out". You can change the executable output file with the -o option. Something like this: g++ -g -Wall -o program main.cc othercode.cc morecode.cc 1 2 3 4 5 1) compiler command 2) include debugging info into the executable 3) show compiler warnings 4) name the executable "program" instead of "a.out" 5) list of source files Replace -g with -O when you do a "production" build. If you have a lot of source files, you may want to look into makefiles. A makefile is similar to a project file from the MS world. Usually, a function/method's man page will tell you what you must include. Ex: socket() $ man socket SOCKET(2) Linux Programmer's Manual SOCKET(2) NAME socket - create an endpoint for communication SYNOPSIS #include <sys/types.h> #include <sys/socket.h> int socket(int domain, int type, int protocol); DESCRIPTION Socket creates an endpoint for communication and returns a descriptor. [Snip] If that fails, you can always grep the function out of the header files: $ find /usr/include -name \*.h -print | xargs grep function /dev/null Hope this gets you started. Brian ---------------------------------- Tucson Free Unix Group tfug@listserv.azstarnet.com ----------------------------------
Example:
The math library (libm.so) needs to be explicitly linked.
gcc -o calc calculator.c -lmLinker convention requires you to ommit the "lib" part of libm.