l i n u x - u s e r s - g r o u p - o f - d a v i s
L U G O D
 
Next Meeting:
July 21: Defensive computing: Information security for individuals
Next Installfest:
TBD
Latest News:
Jul. 4: July, August and September: Security, Photography and Programming for Kids
Page last updated:
2003 Jul 20 15:56

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] Asking C compiler to test for #include file
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] Asking C compiler to test for #include file



If you're checking for SDL:

   #include "SDL.h"
   #ifndef _SDL_H
   #error You need to install libsdl1.2-dev
   #endif

SDL is maintained soleby by Sam, and he's not likely to change the _SDL_H
symbol in the future, so it's safe to use the _SDL_H symbol to test for
SDL.h.

The same goes for other libraries, too.  Just check the header file to see
what symbol gets defined by the header files.  But you *can't* do this for
standard libraries, like C standard libraries that gets recreated by
individual compiler vendors.  For most libraries you use (SDL, SDL mixer,
TTF lib, etc.), though, they get maintained only by a handful of people so
it's relatively safe to use those symbols.

But if doing the above technique is too "iffy", the more "correct" way
would be to use Autoconf.  Here's my tutorial on Autoconf/Automake (a very
good one at that, too ^_^):

   http://www.cbreak.org/projects/autotools/

-Mark


On Sun, 20 Jul 2003, Bill Kendrick wrote:

>
> Right now I have a program that will die if certain headers can't be found.
>
> The issue of getting these headers has practically become an FAQ for the libraries installed.
> ("You forgot to download the *-dev packages of the library, which contains the headers!")
>
>
> I'd like, if possible, GCC to barf with my OWN error, stating something along these lines,
> rather than just:
>
>   src/myprog.c:15: foo.h: No such file or directory
>
>
> I realize I can spit out an error message using the C "#error" directive, but is there a simple
> (and portable) way of TESTING?
>
> e.g.:
>
>   #SOME_IF-LIKE_DIRECTIVE_I_DON'T_KNOW_ABOUT
>
>     #include "somelib.h"
>
>   #else
>
>     #error "Ya big dummy!  You need to install the 'somelib-dev' package!"
>
>   #endif
>
>
>
> Is there such a thing?  I'm actually realtively unfamiliar with all of the C directives out there.
> I've stuck to the typical "#define", "#ifdef", "#include" trio. ;^)
>
>
> Thx in advance,
>
> -bill!
>
> PS - I'm not currently using autoconf/automake in this project.  I'm not sure if I ever will decide to...
>
> --
> bill@newbreedsoftware.com                           Got kids?  Get Tux Paint!
> http://newbreedsoftware.com/bill/       http://newbreedsoftware.com/tuxpaint/
> _______________________________________________
> vox-tech mailing list
> vox-tech@lists.lugod.org
> http://lists.lugod.org/mailman/listinfo/vox-tech
>

-- 
Mark K. Kim
http://www.cbreak.org/
PGP key available upon request.

_______________________________________________
vox-tech mailing list
vox-tech@lists.lugod.org
http://lists.lugod.org/mailman/listinfo/vox-tech



LinkedIn
LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
facebook
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
Sunset Systems
Who graciously hosts our website & mailing lists!