Newbie - C API Question

Natalia C. n4t4lia at yahoo.com
Mon Mar 31 19:42:02 EST 2003


I wrote this code that I got somewhere from a book 

#include "/usr/local/include/python2.1/Python.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int fac(int n)
{
	if(n<2)return(1);
	return((n)*fac(n-1));
}

char *reverse(char *s)
{
	register char t,
		*p=s,
		*q=(s+(strlen(s)-1));
	while(s && (p<q))
	{
		t = *p;
		*p++ = *q;
		*q-- = t;
	}
	return s;
}

void main()
{
	char s[BUFSIZ];
	printf("4!==%d\n",fac(4));
	printf("8!==%d\n",fac(8));
	printf("12!==%d\n",fac(12));
	strcpy(s,"abcdef");
	printf("reversing 'abcdef', we get '%s'\n",reverse(s));
	strcpy(s,"madam");
	printf("reversing 'madam', we get '%s'\n",reverse(s));
}
static PyObject*
testProj_fac(PyObject *self, PyObject *args){
	int res;
	int num;
	PyObject* retval;

	res=PyArg_ParseTuple(args,"i",&num);
	if(!res){
		return NULL;
	}
	res=fac(num);
	retval=(PyObject*)Py_BuildValue("i",res);
	return retval;
}
********************************************************
and I just do a simple cc testProj.c
and it gives me this compiling error which I don't know what to do
with

Undefined                       first referenced
 symbol                             in file
Py_BuildValue                       testProj.o
PyArg_ParseTuple                    testProj.o
ld: fatal: Symbol referencing errors. No output written to a.out

I don't really understand what do you mean (and how do you do) the
loading of libpython.a??

Please help...
Thanks
Nat




More information about the Python-list mailing list