我在使用英特爾編譯器(11.1)構建ctypes工作版本時遇到了問題。麻煩的是,當與ctypes模塊接口連接時,ctypes模塊下的libffi不能正常工作。 OpenGL的。英特爾編譯器和Python/ctypes/libffi
本來libffi使用英特爾編譯器爲__int128_t
沒有編譯沒有定義的,我身邊跟着的是已經上市的幾個地方,工作就是通過定義一個新的類型:
typedef struct { int64_t m[2]; } __int128_t;
這遵循響應英特爾給出:http://software.intel.com/en-us/forums/showthread.php?t=56652
補丁然後提示是這樣的:
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;
應用該補丁,編譯東西,並且可用於導入,但是,當與OpenGL交互時,事情不起作用。運行PyQt的示例程序hellogl.py
會導致空白視圖。
有沒有更好的工作方式呢?
丹;
它已被討論爲一個Python bug:http://bugs.python.org/issue4130 – Dan 2010-08-17 08:35:23
也可以說,編譯Python(和libffi)與GCC的作品 - 但我對全英特爾解決方案感興趣。在最糟糕的情況下,我會求助於libffi進行GCC編譯。 – Dan 2010-08-17 08:37:58