It seems that I have found an answer, but it is not as automatic as it seems 
it should be.

If I use the NOCLEAN option and then go into the build directory and do:
ld -shared inlinedwg_pl_4215.o -o 
../../lib/auto/inlinedwg_pl_4215/inlinedwg_pl_4215.so /usr/local/lib/ad2.a 
/usr/local/lib/ad2pic.a

It appears to be working, but I will have to do this step by hand every time I 
change the C code and cause a recompile?

Does it have something to do with MakeMaker not finding the *.a files in the 
Makefile.PL?

Is there any way to make .so files out of .a files?

--Eric

> The following was supposedly scribed by
> Eric Wilhelm
> on Friday 26 September 2003 12:47 am:

>perl: relocation error: <long path>: undefined symbol: adInitAd2
>
>I'm trying to include an external library which contains the adInitAd2
>function.  It is typed in the header file "ad2.h".
>
>I've had success with this same library using swig in the past using the
>following compile string (after generating the _wrap code with swig)
>
>gcc -g -c DWG_wrap.c -I/usr/local/include/ -I\
>/usr/lib/perl5/5.6.1/i386-linux/CORE/ && ld -shared DWG_wrap.o -o DWG.so\
>/usr/local/lib/ad2.a /usr/local/lib/ad2pic.a
>
>where the swig interface file had the following includes:
>
>#include "ad2.h"
>#include "odio.h"
>
>Using these same includes in my Inline code, I get the above mentioned
>relocation error.
>
>Any suggestions as to what causes this?
>
>Thanks,
>Eric

-- 
"There are three terrible ages of childhood -- 1 to 10, 10 to 20, 
and 20 to 30."
                                        --Cleveland Amory

Reply via email to