包括<;Python.h>;到makefile.am

包括<;Python.h>;到makefile.am,python,c++,c,python-2.7,makefile,Python,C++,C,Python 2.7,Makefile,我为这个新手问题道歉。我目前正在寻找将一个小的python代码嵌入到主C代码中。建议在标题处使用#include。我已经这样做了,我的Ubuntu12-0.4机器也安装了python dev 通过运行locate Python.h,我得到了/usr/include/python2.7/Python.h 然而,当我将Python.h包含到我的C程序中时,它仍然会给我致命错误:Python.h:没有这样的文件或目录 因此Python.h没有包含在Makefile中。但我不知道怎么做。查看我的包列表,

我为这个新手问题道歉。我目前正在寻找将一个小的python代码嵌入到主C代码中。建议在标题处使用
#include
。我已经这样做了,我的Ubuntu12-0.4机器也安装了
python dev

通过运行
locate Python.h
,我得到了
/usr/include/python2.7/Python.h

然而,当我将Python.h包含到我的C程序中时,它仍然会给我
致命错误:Python.h:没有这样的文件或目录

因此Python.h没有包含在Makefile中。但我不知道怎么做。查看我的包列表,我有:
Makefile.am
Makefile.in
,和
Makefile


在Makefile.am中:

ACLOCAL_AMFLAGS = -I m4
EXTRA_DIST = MIGRATION README.rst libmodbus.spec
SUBDIRS = src doc tests

pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libmodbus.pc
在Makefile.In中, 第一行说

#Makefile.in由automake 1.14.1从Makefile.am生成。


我是否应该将
Makefile.in
的完整描述包含在此处?我不知道该如何进行

我遇到了相同的错误,请尝试以下操作:

gcc -I/usr/include/python2.7 yoursource.c -o yourprogram
此解决方案来自:

我不知道如何
自动生成
,但当您调用
g++
时,我认为应该有一个选项
-L/usr/include/python2.7
。(
/usr/include
会自动附加到搜索列表中,但我认为这不是递归的。)@JamesKanze
-I/usr/include/python2.7
大写
I
——不是
L
——这是用于库的。还是我错了?@SylvainLeroux你是对的。它应该是
-I
。您可能还需要一个
-R
,或者告诉链接器和可执行文件在哪里查找库(除非它在
/usr/lib
中)。我手头没有Unix系统可供检查,但您也可以验证大小写;您的错误消息显示的是
python.h
,而不是
python.h
。那么,我是否要将其添加到我的Makefile.am中?您可能看到了错误的
Makefile.am
。如果您的程序是在
src
中编译的,则最有可能需要该程序。您可以尝试在该文件中设置
AM\u CPPFLAGS=-I/usr/include/python2.7
,并重新生成生成文件。不过,这可能只适用于实验性的补丁程序,正确的做法通常是修改
configure.ac
,让autoconf定位Python并设置适当的标志。