GCC unable to find header file in a included library

Corwin Mcknight picture Corwin Mcknight · May 5, 2012 · Viewed 23.9k times · Source

I am trying to include a library file named libmathematica.a in gcc so it gets linked in the executable example.

I attempt to do this with gcc main.c libmathematica.a -o example

Note: I have to do this with gcc, as ld won't link it properly with the correct system libraries

But I get: fatal error: mathematica.h: No such file or directory ,which is odd because mathematica.h is in the library.

Can you help?

Answer

Hristo Iliev picture Hristo Iliev · May 5, 2012

A header file cannot be in the library. It has to be present at a certain location and you have to specify that location with the -I compiler flag:

gcc -I/path/to/mathematica/include main.c libmathematica.a -o example

If the header file is in the directory where the main.c is or in a subdirectory, then be sure that you use quotes and not angle brackets in the #include directive.