我正在开发一个具有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
在您的项目中公开,或者保密,问题仍然存在,只能在构建期间用于实施文件吗?
答案 0 :(得分:3)
不应该公开它以避免像你所拥有的那样的问题。请参阅Gentoo autotools best-practices document,特别是以开头的段落.config.h头文件应被视为内部头文件。
在您的情况下,我会做与您完全相同的事情:添加一个阻止处理该文件的#define。