Hmmm, yes and no. Because I did not find a straight forward way to tell Inline::C NOT to cleanup XS code after successful compilation. From its source code, the cleanup option is in {API} hash which I do not know how to affect. The very round-about way of doing this was to break the compilation by introducing an obvious error in the C code. That would leave the XS file in the build dir. Albeit broken but easily fixable. That's all based on my own experiments as documentation is a bit scarce. It would be a good feature to allow for converting the hidden XS distribution to a stand-alone module in a straight-forward way. (Edit: see Anonymous response below with proper solution)
On the very serious other hand, NERDVANA mentions Inline::Module (unknown to me a minute ago) which provides exactly this functionality. I have not tried it yet.
FWIW, this tells Inline::C to place the output binaries to specific directory ("unhiding" it!) - provided output dir exists. BUT I did not manage to tell it to NOT cleanup so that I can use the XS code. So I can only use the binaries. (Edit: same as above edit)
use Inline C =>
Config =>
# dir must already exist!
DIRECTORY => 'xxx'
;
use Inline 'C';
# perl code
...
__END__
__C__
// C code
bw, bliako
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|