includes and binary code

Nifty Hat Mitch mitch48 at sbcglobal.net
Mon Dec 20 07:21:48 UTC 2004


On Fri, Dec 17, 2004 at 07:24:53PM +0100, soraberri wrote:
> 
> I think my problem is a concept failure:

 yep ;-)

> When I include in my programs a #include <afile.h> I am telling the 
> compiler to look for afile.h and paste the code in my program.

Not exactly the compiler but the pre-processor.
The preprocessor does a lot more than insert the file text.
See the man page for "cpp".

I think the part you are missing is
the location of 'afile.h'.

Inside the <> there is some expectation that the file
will be found in a standard location.  Make sure
your  #include <afile.h> is correct.

i.e. Compare and contrast:
     #include <afile.h>
     #include "afile.h"
     #include "../headers/afile.h"

I like to think of 'cc' or 'gcc' as a multi-function driver
that will first run the preprocessor, then the compiler, then the
assembler, then the link loader....  I know that I can pass
specific flags to each.

For example:

    cc -DDEBUG foo.c

will define and pass "DEBUG" to the pre-processor then compile foo.c
pass the compiler output to the assembler then to the link/ loader and
editor and generate the default result (a.out)

Most of the interesting stuff can take a bit of thought.  This and
more is placed in a Makefile to get it right over and over.  Then make
can call the compiler and more with the correct flags, files etc.

Regards,
tom

-- 
	T o m  M i t c h e l l 
	spam unwanted email.
	SPAM, good eats, and a trademark of  Hormel Foods.




More information about the fedora-list mailing list