jkt@slon ~/work/prog/python/PIL_usm/PIL_usm_0.6.0 $ g++ -I/usr/include/python2.4 PILusm.cpp PILusm.cpp: In function ‘PyObject* usm(PyObject*, PyObject*)’: PILusm.cpp:429: warning: converting to ‘int’ from ‘float’ /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/../../../crt1.o: In function `_start': init.c:(.text+0x18): undefined reference to `main' /tmp/ccWdBOkT.o: In function `initPILusm()': PILusm.cpp:(.text+0x9e): undefined reference to `Py_InitModule4' /tmp/ccWdBOkT.o: In function `about(_object*, _object*)': PILusm.cpp:(.text+0xba): undefined reference to `Py_BuildValue' /tmp/ccWdBOkT.o: In function `versions(_object*, _object*)': PILusm.cpp:(.text+0x100): undefined reference to `Py_BuildValue' /tmp/ccWdBOkT.o: In function `_gblur(ImagingMemoryInstance*, ImagingMemoryInstance*, float, int, int)': PILusm.cpp:(.text+0x185): undefined reference to `PyEval_SaveThread' PILusm.cpp:(.text+0x88e): undefined reference to `PyEval_RestoreThread' /tmp/ccWdBOkT.o: In function `usm(_object*, _object*)': PILusm.cpp:(.text+0x966): undefined reference to `PyArg_ParseTuple' PILusm.cpp:(.text+0x98b): undefined reference to `Py_BuildValue' PILusm.cpp:(.text+0xb43): undefined reference to `Py_BuildValue' PILusm.cpp:(.text+0xb96): undefined reference to `Py_BuildValue' PILusm.cpp:(.text+0xba3): undefined reference to `PyEval_SaveThread' PILusm.cpp:(.text+0xec9): undefined reference to `PyEval_RestoreThread' PILusm.cpp:(.text+0xee5): undefined reference to `Py_BuildValue' /tmp/ccWdBOkT.o: In function `gblur(_object*, _object*)': PILusm.cpp:(.text+0xf5f): undefined reference to `PyArg_ParseTuple' PILusm.cpp:(.text+0xf84): undefined reference to `Py_BuildValue' PILusm.cpp:(.text+0x110c): undefined reference to `Py_BuildValue' PILusm.cpp:(.text+0x115d): undefined reference to `Py_BuildValue' PILusm.cpp:(.text+0x117d): undefined reference to `Py_BuildValue' collect2: ld returned 1 exit status