Python.h 可以通过locate找到,但GCC却找不到

Python.h 可以通过locate找到,但GCC却找不到

我刚刚编写了一个简单的 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-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

pkg-config --cflags python

这将输出需要传递给 GCC 的标志,以便编译使用 Python 头文件和库的应用程序。

链接时,使用此命令的输出来包含适当的库:

pkg-config --libs python

您甚至可以将这两个步骤结合起来:

gcc `pkg-config --cflags --libs python` 源文件.c

相关内容