4

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

这似乎是一个非常普遍的问题,我很惊讶地看到 Pythonconfig.h与我自己的冲突。在我的项目中,我保持config.h私密——即,未安装make install. 我的印象是,这是正确的。我发现至少一篇博客文章分享了这种观点。

Python与我的冲突是否是一个错误config.h

编辑:我通过添加解决了它

AC_DEFINE(Py_PYCONFIG_H,[],[Defined here to avoid conflicts with pyconfig.h])

到我的configure.ac. 问题仍然存在,应该config.h在您的项目中公开,还是保持私有,仅在构建期间对实现文件可用?

4

1 回答 1

3

它不应该公开以避免像您遇到的问题一样。请参阅Gentoo autotools 最佳实践文档,具体而言,以 config.h 头文件开头的段落应被视为内部头文件

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

于 2009-12-24T01:15:23.557 回答