Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re^7: Extending perl with C dynamic library.

by syphilis (Canon)
on Aug 21, 2013 at 22:30 UTC ( #1050427=note: print w/ replies, xml ) Need Help??


in reply to Re^6: Extending perl with C dynamic library.
in thread Extending perl with C dynamic library.

How to make it possible to use this code from shared library ?

I think (untested) it's just that the XS file that Inline generates specifies "PACKAGE = main", whereas for your purposes here, it needs to specify "PACKAGE = Example". Specifying NAME => 'Example' sets "MODULE = Example", but doesn't set PACKAGE appropriate to your needs.

If, having installed InlineX::C2XS you put that C code (only the C code - nothing else) into ./src/Example.c, create a directory named (say) ./MyMod, and run this script:

use warnings; use strict; use InlineX::C2XS qw(c2xs); c2xs('Example', 'Example', './MyMod');
Then you should get a correct XS file for inclusion in a perl module/package named 'Example'.
You can also provide arguments to c2xs() to auto-generate a Makefile.PL, Example.pm, and MANIFEST files, thereby making it easy to build your 'Example' module in the usual manner (and with no dependency upon Inline::C).

As regards the "main" function in the code you provided, it seems to be working fine - but it's just another subroutine, and it's therefore best to call it something other than "main" (to avoid confusion).

Cheers,Rob


Comment on Re^7: Extending perl with C dynamic library.
Select or Download Code
Replies are listed 'Best First'.
Re^8: Extending perl with C dynamic library.
by Martin90 (Sexton) on Aug 24, 2013 at 12:13 UTC

    Problem solved ;)

    @syphilis you were right Module = main was the problem ! Huge thanks for help ;)

    I would like also thank for help all users involved in this subject in particular @BrowserUk and @syphilis !

    All best guys ;)

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1050427]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (3)
As of 2015-07-30 04:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (269 votes), past polls