2011-03-08 101 views
0

中的python-ast.c時,我已經下載了Python 2.7.1 source code編譯問題在Win32

static PyTypeObject AST_type = { 
    PyVarObject_HEAD_INIT(&PyType_Type, 0) //this is line 464 
    "_ast.AST", 
    sizeof(PyObject), 
    0, 
    0,      /* tp_dealloc */ 
    0,      /* tp_print */ 
    0,      /* tp_getattr */ 
    0,      /* tp_setattr */ 
    0,      /* tp_compare */ 
    0,      /* tp_repr */ 
    0,      /* tp_as_number */ 
    0,      /* tp_as_sequence */ 
    0,      /* tp_as_mapping */ 
    0,      /* tp_hash */ 
    0,      /* tp_call */ 
    0,      /* tp_str */ 
    PyObject_GenericGetAttr, /* tp_getattro */ 
    PyObject_GenericSetAttr, /* tp_setattro */ 
    0,      /* tp_as_buffer */ 
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */ 
    0,      /* tp_doc */ 
    0,      /* tp_traverse */ 
    0,      /* tp_clear */ 
    0,      /* tp_richcompare */ 
    0,      /* tp_weaklistoffset */ 
    0,      /* tp_iter */ 
    0,      /* tp_iternext */ 
    ast_type_methods,  /* tp_methods */ 
    0,      /* tp_members */ 
    0,      /* tp_getset */ 
    0,      /* tp_base */ 
    0,      /* tp_dict */ 
    0,      /* tp_descr_get */ 
    0,      /* tp_descr_set */ 
    0,      /* tp_dictoffset */ 
    (initproc)ast_type_init, /* tp_init */ 
    PyType_GenericAlloc,  /* tp_alloc */ 
    PyType_GenericNew,  /* tp_new */ 
    PyObject_Del,   /* tp_free */ 
}; 

我使用TDM GCC

gcc version 4.4.1 (TDM-1 mingw32) 

指定的目錄包含所有需要的包含。這是爲什麼發生?在Python-ast.c的代碼看起來像標準C.

感謝您的幫助

回答

1

Windows上的Python期待與MSVC編譯。 #define等是爲它設置的。他們可能會尋找宏觀_WIN32或什麼,這是由MSVC和(如果我沒記錯的話)由mingw32定義。既然你用mingw編譯而不是MSVC,那可能是問題的一部分。

我也想知道PyVarObject_HEAD_INIT是在哪裏定義的,並試圖找出它可能導致錯誤的那條線。