Hi all again, I wonder if so far only Python 2.5.x support c extension. I try the MSVC 2010 and 2008, also try mingw (gcc 4.x.x) and swig. But even I try the simplest example, it said
example_wrap.o:example_wrap.c:(.text+0x10ac): undefined reference to `_imp__PyObject_Free' example_wrap.o:example_wrap.c:(.text+0x10f5): undefined reference to `_imp__PyCapsule_Import' example_wrap.o:example_wrap.c:(.text+0x1100): undefined reference to `_imp__PyErr_Occurred' example_wrap.o:example_wrap.c:(.text+0x110e): undefined reference to `_imp__PyErr_Clear' example_wrap.o:example_wrap.c:(.text+0x1125): undefined reference to `_imp__PyImport_AddModule' example_wrap.o:example_wrap.c:(.text+0x1144): undefined reference to `_imp__PyCapsule_New' example_wrap.o:example_wrap.c:(.text+0x1165): undefined reference to `_imp__PyModule_AddObject' example_wrap.o:example_wrap.c:(.text+0x1170): undefined reference to `_imp__PyBaseObject_Type' example_wrap.o:example_wrap.c:(.text+0x11b2): undefined reference to `_imp__PyObject_SetAttr' example_wrap.o:example_wrap.c:(.rdata+0x1e8): undefined reference to `PyObject_GenericGetAttr' collect2: ld returned 1 exit status and some sort like that. So I try to use the compiler itself and get rid of all 3rd part tool, here is what I did ///////////// source code #include "Python.h" static PyObject * ex_foo(PyObject *self, PyObject *args) { printf("Hello, world n " ); Py_INCREF(Py_None); return Py_None; } static PyMethodDef example_methods[] = { {"foo" , ex_foo, METH_VARARGS, "foo() doc string" }, {NULL , NULL } }; static struct PyModuleDef examplemodule = { PyModuleDef_HEAD_INIT, "example" , "example module doc string" , -1 , example_methods, NULL , NULL , NULL , NULL }; PyMODINIT_FUNC PyInit_example(void ) { return PyModule_Create(&examplemodule); } /// my setup.py from distutils.core import setup, Extension module1 = Extension('example', sources = ['example.c']) setup (name = 'example', version = '1.0', description = 'This is a demo package', ext_modules = [module1]) // running python setup.py build --compiler=mingw32 $ python setup.py build --compiler=mingw32 running build running build_ext building 'example' extension D:\Programs\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall "-Ic:\Program Files (x8 6)\Python\include" "-Ic:\Program Files (x86)\Python\PC" -c example.c -o build\te mp.win-amd64-3.1\Release\example.o writing build\temp.win-amd64-3.1\Release\example.def D:\Programs\MinGW\bin\gcc.exe -mno-cygwin -shared -s build\temp.win-amd64-3.1\Re lease\example.o build\temp.win-amd64-3.1\Release\example.def "-Lc:\Program Files (x86)\Python\libs" "-Lc:\Program Files (x86)\Python\PCbuild\amd64" -lpython31 - lmsvcr90 -o build\lib.win-amd64-3.1\example.pyd build\temp.win-amd64-3.1\Release\example.o:example.c:(.text+0x13): undefined ref erence to `_imp___Py_NoneStruct' build\temp.win-amd64-3.1\Release\example.o:example.c:(.text+0x32): undefined ref erence to `_imp__PyModule_Create2' collect2: ld returned 1 exit status error: command 'gcc' failed with exit status 1 --------------------- Original Message Ends -------------------- -- http://mail.python.org/mailman/listinfo/python-list