2009-12-24 2 views
4

저는 SWIG가 파이썬에 바인딩되어있는 C 라이브러리를 만들고 있습니다. autotools 구성에서 gettimeofday 함수를 확인합니다. 나는 프로젝트의 파이썬 부분을 컴파일 할 수 없다는 것을 발견했다. 왜냐하면 HAVE_GETTIMEOFDAY를 정의하는 pyconfig.h 파일과 충돌하기 때문이다.config.h를 공개해야합니까? Python과의 충돌

이것은 매우 일반적인 문제처럼 보입니다. 저는 Python의 config.h이 내 자신과 충돌하는 것을보고 놀랐습니다. 내 프로젝트에서는 config.h을 비공개로 유지합니다. 즉, make install으로 설치되지 않았습니다. 내 인상은 이것이 맞는 것입니다. 나는이 의견이 어디에서 공유되는지 적어도 one blog post을 발견했다.

파이썬이 내 config.h과 충돌하는 버그입니까?

편집 : 내 configure.ac

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

를 추가하여 해결했다. 질문이 여전히 있습니다. config.h은 공개적으로 프로젝트에 게시하거나 비공개로 유지해야하며 빌드 중 구현 파일에서만 사용할 수 있습니까?

+0

좋은 질문입니다. 저는 Python과 마찬가지로이 내용을 공개하는 프로젝트를 진행하고 있습니다. 여러분이 옳다고 생각합니다. 버그처럼 보입니다. –

답변

3

내가 가진 것과 같은 문제를 피하기 위해 공개해서는 안됩니다. Gentoo autotools best-practices document, 특히 로 시작하는 단락을 참조하십시오. config.h 헤더 파일은 내부 헤더 파일으로 간주되어야합니다.

귀하의 경우, 정확히 동일한 작업을 수행 할 것입니다 : 해당 파일을 처리하지 못하게하는 #define을 추가하십시오.

+0

감사합니다. 확인을 좀하는 것이 좋습니다. 어쩌면 나는 그것을 파이썬 버그로 제출할 것이다. – Steve