Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python_x64+;在Windows7 Py_InitModule4上使用mingw_x64编译的C库_Python_C_Gcc_Windows 7 X64_Mingw W64 - Fatal编程技术网

python_x64+;在Windows7 Py_InitModule4上使用mingw_x64编译的C库

python_x64+;在Windows7 Py_InitModule4上使用mingw_x64编译的C库,python,c,gcc,windows-7-x64,mingw-w64,Python,C,Gcc,Windows 7 X64,Mingw W64,我正在尝试使用mingw-x64在Windows7(64位)上编译python的C库。 这一切就像32位版本的魅力 我过去经常使用 gcc-shared-IC:\Python27\include-LC:\Python27\libs myModule.c-lpython27-o myModule.pyd 它适用于32位版本。同样的过程也适用于64位linux。 但在64位windows7(使用64位x86_64-w64-mingw32和64位python 2.7.5)上,我有一个问题: C:\Us

我正在尝试使用mingw-x64在Windows7(64位)上编译python的C库。 这一切就像32位版本的魅力

我过去经常使用 gcc-shared-IC:\Python27\include-LC:\Python27\libs myModule.c-lpython27-o myModule.pyd

它适用于32位版本。同样的过程也适用于64位linux。 但在64位windows7(使用64位x86_64-w64-mingw32和64位python 2.7.5)上,我有一个问题:

C:\Users\sergej\AppData\Local\Temp\cci8TbXw.o:myModule.c:(.text+0x267): 
undefined reference to `__imp_Py_InitModule4'
collect2: ld returned 1 exit status
我检查了C:/Python27/libs/modsupport.h,它已经包含

#if SIZEOF_SIZE_T != SIZEOF_INT
/* On a 64-bit system, rename the Py_InitModule4 so that 2.4
   modules cannot get loaded into a 2.5 interpreter */
#define Py_InitModule4 Py_InitModule4_64
#endif
我现在不知道该怎么办。有什么建议吗? C代码在这里不是问题。我有同样的问题,从例子
注意-本例第26行中的打字错误:应为VARARGS

是的,我确实发现(类似于问题)我可以通过将-DMS_WIN64添加到gcc行来编译这个简单的示例,但我在实际程序中仍然得到了类似的错误(表明还有更多错误)


从评论中复制答案,以便从“未回答”筛选器中删除此问题:


我不想回答我自己的问题,但是。。。添加-DMS_WIN64实际上已经足够了。剩下的问题是由于gcc参数(出于某种原因-lpython27应该在-o myModule.pyd之前出现),这些参数在我的项目中顺序不正确


~answer per

我不想回答自己的问题,但是。。。添加-DMS_WIN64实际上已经足够了。剩下的问题是由于gcc参数(出于某种原因-lpython27应该在-o myModule.pyd之前出现),这些参数在我的项目中顺序不正确。如果您想将解决方案作为您自己的答案进行重述,我将删除我的答案。(请参阅详细说明为什么这会有帮助。)谢谢!
undefined reference to `__imp_PyArg_ParseTuple'
undefined reference to `__imp_Py_BuildValue'
undefined reference to `__imp_Py_InitModule4_64'