GCC无法在包含的库中找到头文件

时间:2012-05-05 17:41:50

标签: c gcc libraries

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

我尝试使用gcc main.c libmathematica.a -o example

执行此操作

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

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

你能帮忙吗?

3 个答案:

答案 0 :(得分:13)

头文件不能是库中的 。它必须出现在某个位置,您必须使用-I编译器标志指定该位置:

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

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

尝试添加到gcc调用 - 类似的选项    -I /全/路径/到/ /目录/凡/该/期望/报头/驻留

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