note
tlm
<p>A belated update. Shortly after posting, I (re-)discovered the NOCLEAN option to [cpan://Inline], which enabled me to examine the generated *.c file, and from this I could see where the references to XS_unpack_charPtrPtr. So I never got to use [BrowserUk]'s useful trick. (I've added to the old bag o' tricks for the future. Thanks.)
</p>
<p>I found that apparently <c>Inline</c> was getting thrown off by the fact that in my C code some times I had the word static in the declaration of a function, but not in its subsequent definition; e.g.
<code>
static void foo ();
...
void foo () {
...
}
</code>
or even
<code>
static void foo ();
...
static
void foo () {
...
}
</code>
...with the <c>static</c> keyword on a separate line. Either way, <c>Inline</c> was incorrectly treating these functions as ones to make callable from Perl. So adding the
<c>static</c> keyword to the function definitions where <c>Inline</c> wanted it took care of the <c>XS_unpack_charPtrPtr</c> error. (It is a mystery to me why this problem arose only when I tried to make a downloadable package, and not before during my tests, since the C source code was exactly the same in both cases.)</p>
<p>But as it happened, all this turned out to be for nothing, and [syphilis]'s observations and suggestions were right on the money. What I had been trying to do did not produce the desired degree of independence from [cpan://Inline]. For what I needed [cpan://InlineX::C2XS] was indeed the right tool. Many thanks!</p>
<div class="pmsig"><div class="pmsig-439528">
<p><small>the lowliest monk</small></p>
</div></div>
755383
755383