在C ++中包含带有Makefile的Python.h

时间:2018-02-17 06:11:03

标签: python c++ makefile g++

我有以下Makefile,我需要将Python.h添加到我的main.cpp文件中。无论我尝试或搜索什么,我似乎无法弄清楚如何使用Makefile正确导入Python.h。我已经正确安装了python,并且我的文件命名正确。 Python 2.7按预期位于以下文件夹中:/usr/include/python2.7

main.cpp唯一重要的部分是我用Python包含的地方:

#include <Python.h>

我的Makefile目前看起来像这样:

CC=g++
CFLAGS=-c -Wall
LIBS=-lwiringPi

all: my_code_file

single_chan_pkt_fwd: secondary.o main.o
    $(CC) main.o secondary.o $(LIBS) -o my_code_file

main.o: main.cpp
    $(CC) $(CFLAGS) main.cpp

secondary.o: secondary.c
    $(CC) $(CFLAGS) secondary.c

clean:
    rm *.o my_code_file

当我在命令行上运行命令make时,出现以下错误:

main.cpp:26:20: fatal error: Python.h: No such file or directory
 #include <Python.h>

有人可以帮我解决我的案例中需要的Makefile添加吗?我在Raspberry Pi上运行所有这些,如果这有任何帮助。

基于Stack Overflow上的类似问题,我已经尝试了这个(运行正常,但没有帮助):

sudo apt-get install python-dev

1 个答案:

答案 0 :(得分:0)

您可以使用python-config(或python3-config)实用程序来获得CFLAGS和LDFLAGS。

%> python3-config --cflags
-I/path/to/Python3.6.5/include/python3.6m -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes
%> python3-config --ldflags
-L/path/to/Python3.6.5/lib/python3.6/config-3.6m-x86_64-linux-gnu -L/path/to/Python-3.6.5/lib -lpython3.6m -lpthread -ldl -lutil -lrt -lm -Xlinker -export-dynamic

在您的Makefile中,也许像这样设置它们:

PY_CFLAGS  := $(shell python3-config --cflags)
PY_LDFLAGS := $(shell python3-config --ldflags)