Hi David,

I got curious about your request, so I thought I'd try it out. Just to
reassure you, you don't need to be an Inline genius to get things done.
And your code appears fine, because it works on Linux. Here's my version
of the code:

----8<----
#!/usr/bin/perl -w
use Inline C => Config =>
           CCFLAGS => '-D_PROTOTYPES',
           LIBS => '-L/home/nwatkiss/armsdk -larm',
           INC => '-I/home/nwatkiss/armsdk/include';
use Inline C;

$rc = init('Perl Test App', '*');

print $rc, "\n";

__END__
__C__

#include "arm.h"

int init(char *name, char *id) {
    return arm_init(name, id, 0, 0, 0);
}
----8<----

That works great, and prints out '0', as expected. The only real
differences between my code and yours are the operating system and
compiler. In addition, you're using cygwin, which might very well
complicate things a lot. How does cygwin handle things when you link
against a native windows DLL?

You can eliminate that potential problem by compiling your own version, as
I did:

$ gcc lib/source/libarm.c -Iinclude -shared -o libarm.so
$ perl foo.pl (where foo.pl is the file above)

Later,
Neil


Reply via email to