----- Original Message -----
From: "Alexandru Palade" <[EMAIL PROTECTED]>
>
> Like I said I've already converted my module to Inline::C and I've
> made it work, as an Inline based distribution and as a normal CPAN
> distribution in exactly the way you said.
When you convert it to a format that can be built with Inline::C, do you
then find that it can also be built using Inline::CPP ?
I mentioned earlier the Math::Simple demo that ships with the Inline-0.44
source. I can find no difficulty in building it with Inline::CPP, though I'm
not so sure that proves anything useful :-)
>
> I don't plan on wasting anyone's time, I've already found the
> workaround solution (converted everything to Inline::C and it works
> like a charm). But if anyone is into problem solving perhaps you can
> find out why the I can't build the Inline::CPP one. I must say, I'm
> stumped.
>
If you can provide an example '.pm' file (that demonstrates the problem)
that we can run and see for ourselves then I'll have a play (and perhaps
others will, too).
I've just noticed that in one of your earlier posts you had:
#package ChmFile #commented out, not needed because Inline::CPP creates
#the namespace automatically
our $VERSION = '0.01';
use Inline (
C => Config => LIBS => '-lchm',
VERSION => '0.01',
NAME => __PACKAGE__,
CLEAN_AFTER_BUILD => 0
);
use Inline 'CPP';
__DATA__
__CPP__
.
.
Does it make any difference if that becomes:
package ChmFile;
$VERSION = '0.01';
use Inline (
C => Config => LIBS => '-lchm',
CLEAN_AFTER_BUILD => 0
);
use Inline CPP => 'DATA',
VERSION => '0.01',
NAME => 'ChmFile';
__DATA__
__CPP__
That's more in keeping with the way (the demo) Simple.pm is laid out.
I'll go one step further - but please bear in mind that I don't know C++ :
Amend Simple.pm so it looks like:
-----------------------------------
package Math::Simple;
$VERSION = '1.23';
use Inline CPP => 'DATA',
VERSION => '1.23',
NAME => 'Math::Simple';
1;
__DATA__
__CPP__
class Foo {
public:
Foo() {}
~Foo() {}
static int get_thing() { return s_thing; }
private:
static int s_thing;
};
int Foo::s_thing = 10;
---------------------------------
I pinched the C++ code from one of the Inline::CPP test scripts.
And amend the Math::Simple test.pl so that it looks like:
---------------------------------
use strict;
use Test;
use Math::Simple;
BEGIN {
plan(tests => 1);
}
ok(Math::Simple::Foo->new->get_thing, 10);
----------------------------------
When I now build Math::Simple with Inline::CPP it still builds, tests and
runs fine. Does that help ?
Cheers,
Rob