Neil,

Thanks for the reply. I was beginning to wonder if there was anyone on this list.

Did what you suggested, and built my own libarm.dll using cygwin. That didn't seem to 
work. Searched cygwin list for dl issues - found reference to cygcheck utility that 
will load a library, and attempt to load dependencies. Seems that libarm.dll could not 
be found. The only copy I had was in /arm_sdk/lib/winnt_95 (or similar), which was not 
in my path. Copied it to c:\winnt\system32, and all is well!

I was thinking that Inline's Config => LIBS parm would handle this at run-time, but I 
was mistaken.

Next I will try to link to native Windows dll, libarm32.dll - should not be a problem, 
since I've tested already linking to function in user32.dll

Does bring up one thing I'm having trouble with - ARM library name is different on 
Windows - adds '32' to end of basename. I'm trying to write some simple code in my 
arm.pm to change the value of the LIBS parm, but I'm having variable scoping issues. 

Here's what I'm doing:  

use strict;
<snip>
BEGIN {
        our ($VERSION, $libarm_ext);
        $VERSION = '0.04';
        if ($^O eq 'MSWin32')
           {$libarm_ext '32'}
        else 
           {$libarm_ext = ''};
}

use Inline C => Config =>
        CCFLAGS => '-D_PROTOTYPES',     
        LIBS    => '-L/arm_sdk/lib/null -larm'.$libarm_ext,
        INC     => '-I/arm_sdk/include',
        PREFIX  => 'my_'
        ;

use Inline C => 'DATA';
<snip>

This is working. The errors are all related to how I'm use the variable $libarm_ext, 
with strict. I'm sure it's obvious to people more experienced with Perl than me.

Thanks again for replying.

-David
[EMAIL PROTECTED]


Reply via email to