我正在尝试在gcc中包含一个名为 libmathematica.a 的库文件,以便它在可执行文件示例中链接。
我尝试使用gcc main.c libmathematica.a -o example
注意:我必须使用gcc执行此操作,因为ld不会将其与正确的系统库正确链接
但我得到:fatal error: mathematica.h: No such file or directory
,这很奇怪,因为 mathematica.h 在库中。
你能帮忙吗?
答案 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