在我的新工作中保持旧的来源,我正在努力使事情更清洁。在这个例子中,我有一个很大的项目(1,001个源文件)非常依赖于python2.5。在我的开发机器上,我已经安装了2.6,并且我正在尝试将此项目包含并链接到> = 2.5和< 3.0。
我目前看到两个问题。来自.c文件:
#include <python2.5/Python.h>
来自makefile
LDFLAGS = $(LIBS) -lusb-1.0 -lpthread -lSound -lsqlite3 -lm -lglib-2.0 -lpython2.5
所以,我的问题是:如何更改.c文件,使其使用相应的目录,如何更新makefile以使其链接到相应的库?
编辑:虽然我在这,但我想我可以给glib-2.0同样的待遇。
答案 0 :(得分:1)
我不会更改C文件,而是包含路径和LDFLAGS。
所以.C会有:
#include <Python.h>
在include路径中添加-I / path /到/ python / 2.5 / include和-Lpython2.5
如果使用makefile,则可以使用+ =向include路径和库路径添加选项。
LDFLAGS = $(LIBS) -lusb-1.0 -lpthread -lSound -lsqlite3 -lm
...
ifeq ($(PYTHON_VERSION),2.5)
LDFLAGS += -lpython2.5
CFLAGS += -I/path/to/python/2.5/include
else
...
endif
PYTHON_VERSION是您必须设置的变量。
或者如果你的路径是统一的:
LDFLAGS += -lpython$(PYTHON_VERSION)
CFLAGS += -I/path/to/python/$(PYTHON_VERSION)/include
如果您使用SCONS,则可以更轻松地使用变体构建来编写此类构建。
对于不同版本的Python,您有不同的源代码吗?
或者您只是想使用不同版本的Python编译和链接相同的源代码?