config.h应该公开吗?与Python冲突

时间:2009-12-24 00:47:48

标签: autotools

我正在开发一个具有SWIG绑定到Python的C库。在我的autotools配置中,我检查gettimeofday函数。我发现我无法编译项目的Python部分,因为它与文件pyconfig.h冲突,后者也定义了HAVE_GETTIMEOFDAY。

这似乎是一个非常普遍的问题,我很惊讶地看到Python的config.h与我自己的冲突。在我的项目中,我保持config.h私有 - 即,未与make install一起安装。我的印象是这是正确的。我发现至少one blog post分享了这种观点。

Python是否与我的config.h冲突?

是一个错误

编辑:我通过添加

解决了这个问题
AC_DEFINE(Py_PYCONFIG_H,[],[Defined here to avoid conflicts with pyconfig.h])

到我的configure.ac。如果config.h在您的项目中公开,或者保密,问题仍然存在,只能在构建期间用于实施文件吗?

1 个答案:

答案 0 :(得分:3)

不应该公开它以避免像你所拥有的那样的问题。请参阅Gentoo autotools best-practices document,特别是以开头的段落.config.h头文件应被视为内部头文件

在您的情况下,我会做与您完全相同的事情:添加一个阻止处理该文件的#define。