SALAT Jérémy wrote:
Hello,

I try to use inline in the objective of using a c function present in a dynamic lib (.so), which uses a static lib (.a).


Suppose libyourlib contains a function called 'multiply' which takes 2 arguments of type int and returns a int. You could access it with Inline::C as follows:


use Inline C => Config =>
    LIBS => '-L/path/to/the_static_lib -lyourlib';

use Inline C => <<'EOC';

#include "yourlib.h"

int wrap_multiply(int a, int b) {
    return multiply(a,b);
    }

EOC

my $x = 17;
my $y = 123;

print wrap_multiply($x, $y);

__END__

And, so long as libyourlib.so was able to be found, that Inline script should work fine (typing errors aside :-).

For other (more complex) return and argument types, things might not be so simple.
Take a good look through 'perldoc Inline::C-Cookbook', 'perldoc perlapi', and 'perldoc perlclib'.


What you'll probably be doing is mostly writing "wrapper" functions for the functions in your library.

Cheers,
Rob



Reply via email to