Reputation: 322
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?
Upvotes: 17
Views: 42501
Reputation: 194
The issue would be in your source file. If the mathematica.h is in the system includes directory then you would use #include <mathematica.h>
and if it was in some local directory then you would use something like #include "libs/mathematica.h"
.
Upvotes: 5
Reputation: 74385
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.
Upvotes: 23
Reputation: 888
Try adding to the gcc call - an option like -I/Full/Path/To/The/Directory/Where/the/desired/header/resides
For example: gcc -I/usr/include/mathematica -lmathematica -o example main.c
Upvotes: 1