14

我试图在 gcc 中包含一个名为libmathematica.a的库文件,以便在可执行示例中链接它。

我试图做到这一点gcc main.c libmathematica.a -o example

注意:我必须使用 gcc 执行此操作,因为 ld 无法将其正确链接到正确的系统库

但我得到:fatal error: mathematica.h: No such file or directory这很奇怪,因为mathematica.h在图书馆里。

你能帮我吗?

4

3 回答 3

20

头文件不能在库中。它必须存在于某个位置,并且您必须使用-I编译器标志指定该位置:

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

如果头文件在目录main.c或子目录中,请确保在#include指令中使用引号而不是尖括号。

于 2012-05-05T17:47:10.970 回答
5

问题出在您的源文件中。如果mathematica.h 在系统包含目录中,那么您将使用#include <mathematica.h>它,如果它在某个本地目录中,那么您将使用类似#include "libs/mathematica.h".

于 2012-05-05T17:45:24.880 回答
1

尝试添加到 gcc 调用 - 像 -I/Full/Path/To/The/Directory/Where/the/desired/header/resides 这样的选项

例如:gcc -I/usr/include/mathematica -lmathematica -o example main.c

于 2012-05-05T17:46:57.610 回答