2010-08-17 2 views
1

인텔 컴파일러 (11.1)를 사용하여 ctypes로 파이썬의 작동 버전을 빌드하는 데 문제가 있습니다. 문제는 ctypes 모듈 아래에있는 libffi가 예를 들어 인터페이스에 연결할 때 제대로 작동하지 않는다는 것입니다. OpenGL.인텔 컴파일러 및 파이썬/ctypes/libffi

는 원래 __int128_t로 인텔 컴파일러를 사용하여 컴파일되지 않은 libffi 정의, 나는, 즉 새로운 유형 정의하여 그 여러 장소를 나열되었습니다 주위에 일을 따르지 :

typedef struct { int64_t m[2]; } __int128_t;

이를

typedef struct { int64_t m[2]; } __int128_t; 
//and then change where the uint64_t is assigned to this to be: 
sse[x].m[0] = *(uint64_t*) v; 
sse[x].m[1] = 0; 
//and where the uint32_t is assigned to: 
sse[x].m[0] = *(uint32_t*) v; 
sse[x].m[1] = 0; 
: http://software.intel.com/en-us/forums/showthread.php?t=56652

패치는이 같은 제안 : 인텔에 의해 주어진 응답을 다음과 0

패치를 적용하면 모든 것이 컴파일되고 ctypes은 가져올 수있게되지만 OpenGL과 인터페이스 할 때는 작동하지 않습니다. PyQt의 예제 프로그램 hellogl.py을 실행하면 빈 화면이됩니다.

더 나은 방법이 있습니까?

단;

+0

파이썬 버그로 논의되었습니다. http://bugs.python.org/issue4130 – Dan

+0

파이썬 (및 libffi)을 GCC와 함께 컴파일하면 효과가 있다고 할 수 있습니다. 그러나 전체 인텔 솔루션에 관심이 있습니다. . 최악의 경우, 나는 libffi를 GCC 컴파일 만하는 데 의존 할 것이다. – Dan

답변

3

저는 libffi의 저자입니다. 이 모든 내용을 담고있는 [email protected]에 쪽지를 보내는 것이 좋습니다. 필자는 인텔 컴파일러 기반 libffi에서 libffi testsuite를 실행하는 것도 권장합니다. 결과를 [email protected]로 보내 주시면 문제를 파악하는 데 도움이됩니다.

+0

안녕하세요 anthony - 방금 귀하의 답변을 보았습니다. 인텔 컴파일러 사용을 다른 이유로 중단했지만 제안에 감사드립니다. 인텔 컴파일러를 다시 사용하게되면 우리가 컴파일 할 Python 버전이 변경 될 것입니다 (다른 많은 것들 중에서). – Dan

+0

나는 당신의 대답을 받아 들였습니다. :) – Dan