[Python-de] Extending Python mit C

Fritz Cizmaorv fritz at sol.at
Wed May 28 09:14:08 EDT 2003


Hallo Liste,

ich probier gerade einfache C-Funktionen in Python einzubinden, nur komm ic=
h leider
nicht weiter, schon folgendes kleine Listing l=E4sst sich nicht compilieren=
:
--------------------
#include <Python.h>

static PyObject *boacmath_add(self, args)
    PyObject *self;
    PyObject *args;
{
    int ok;
    float a1, a2, a3;
    float b1, b2, b3;
    float r1, r2, r3;
    =

    ok =3D PyArg_ParseTuple(args, "(fff)(fff)", &a1, &a2, &a3, &b1, &b2, &b=
3);
    r1 =3D a1 + b1; r2 =3D a2 * b2; r3 =3D a3 + b3;
    return Py_BuildValue("(fff)", r1, r2, r3);
}
-------------
nach einem gcc -I/usr/include/python2.1 -o boacmath.o boacmath.c kommt folg=
ende Ausgabe:
/usr/lib/crt1.o: In function `_start':
/usr/lib/crt1.o(.text+0x18): undefined reference to `main'
/tmp/ccDrkSa5.o: In function `boacmath_add':
/tmp/ccDrkSa5.o(.text+0x28): undefined reference to `PyArg_ParseTuple'
/tmp/ccDrkSa5.o(.text+0x73): undefined reference to `Py_BuildValue'
collect2: ld returned 1 exit status

ok, ne main funktion hab ich nicht drinn, l=E4sst sich leicht =E4ndern.
Aber das er die PyArg_ParseTuple und Py_BuildValue nicht findet?

Vielleicht wei=DF ja einer von Euch wie ich da am Besten vorgehe, die Sache=
n im Netz dazu
sind IMHO etwas schwer zu verstehen. Oder hat einer vielleicht ein kleines =
Demomodul zum
rumspielen und ausprobieren?


Gru=DF

Fritz



More information about the Python-de mailing list