在我的新工作中维护旧的源代码时,我试图让事情变得更清洁。在这个例子中,我有一个很大的项目(1,001源文件),它非常静态地依赖python2.5。在我的开发机器上,我已经安装了2.6,并且我试图让这个项目包含并链接到> = 2.5和< 3.0。#include <>'Python.h的不同版本并链接到多个版本的Python
我目前看到两个问题。从.c文件:
#include <python2.5/Python.h>
而且从makefile文件
LDFLAGS = $(LIBS) -lusb-1.0 -lpthread -lSound -lsqlite3 -lm -lglib-2.0 -lpython2.5
所以,我的问题是:我怎么改变.c文件使得它使用适当的目录,我如何更新生成文件,以便它链接到适当的库?
编辑:虽然我在这,我想我可以给巧舌如簧 - 2.0同样的待遇。
正在使用distutils,或另一个Python感知构建系统,一个选项?在Glib的情况下,我认为你应该从'glib-config'获得编译和链接标志。 – 2012-07-24 19:21:37
昨天读了更多的东西之后,我认为最简单的解决方案就是使用自动工具。 – musasabi 2012-07-25 14:32:00
Python社区通常的建议是*扩展,而不是嵌入*,即将其作为一个Python程序调用到C而不是其他方式。如果你这样做了,你可以设置setuptools,但我想这可能是一个艰巨的工作,重写一个大型程序以这种方式工作。 – 2012-07-25 14:58:37