我刚刚编写了一个简单的 C 可执行文件来检查它Python.h
是否正常工作
#include<Python.h>
#include<stdio.h>
int main()
{
printf("this is a python header file included programm\n");
return 0;
}
显然,它并没有做太多事情。但是,当我尝试使用它进行编译时,gcc
它给出了一个错误:
foo.c:1:19: fatal error: Python.h: No such file or directory.
然后我检查了一下python-dev包已Python.h
安装或未使用locate
。
$locate Python.h
/usr/include/python2.7/Python.h
我很清楚我Python.h
的系统上有头文件。如何让我的可执行文件运行?
答案1
您需要限定您的包括
#include <python2.7/Python.h>
或者告诉 gcc 在哪里找到 Python.h
gcc -I /usr/include/python2.7/ program.c
答案2
您需要向 GCC 提供标头的包含路径Python.h
。可以使用以下标志完成此操作-I
:
gcc -c -I/usr/include/python2.7 源文件.c
但是,还有更好的方法:使用pkg 配置:
pkg-config --cflags python
这将输出需要传递给 GCC 的标志,以便编译使用 Python 头文件和库的应用程序。
链接时,使用此命令的输出来包含适当的库:
pkg-config --libs python
您甚至可以将这两个步骤结合起来:
gcc `pkg-config --cflags --libs python` 源文件.c