For those of you using C++, you probably ran into the following problem when linking: ld32: WARNING 84 : ../libpovp.a is not used for resolving any symbol. ld32: ERROR 33 : Unresolved text symbol "povparse(char*, SCENE_STRUCT*)" -- 1st referenced by /var/tmp/ccCbRPhb.o. Use linker option -v to see when and which objects, archives and dsos are loaded. ld32: INFO 152: Output file removed because of error. collect2: ld returned 2 exit status *** Error code 1 (bu21) The linking problem above is caused by name mangling in C++. To fix the problem, you need to prevent the C function names from being mangled as well. This is done by placing the function prototype in a wrapper: extern "C" { void povparse (char *t, SCENE_STRUCT *s); } If you place this in your code, then you'll be able to link in the povparse function in the povp library. After this change, you may get the following error: ld32: FATAL 12 : Expecting n32 objects: ../libpovp.a(povparse.o) is o32. collect2: ld returned 4 exit status *** Error code 1 (bu21) To fix this problem, you'll need to change the makep script included in the povparse code. You can replace that file with the lines given below: gcc -c -n32 atmosph.c gcc -c -n32 colour.c gcc -c -n32 express.c gcc -c -n32 mem.c gcc -c -n32 normal.c gcc -c -n32 parse.c gcc -c -n32 parstxtr.c gcc -c -n32 pattern.c gcc -c -n32 pigment.c gcc -c -n32 povparse.c gcc -c -n32 texture.c gcc -c -n32 tokenize.c gcc -c -n32 userio.c /bin/rm -f libpovp.a ar -rs libpovp.a atmosph.o colour.o express.o mem.o normal.o parse.o parstxtr.o \ pattern.o pigment.o povparse.o texture.o tokenize.o userio.o