Seperate perl module of inline code also doeant work out..pls come up if something strikes.thanks.
On 10/25/06, Karthika Arunkumar <[EMAIL PROTECTED]> wrote:
Thanks a lot.But it still says Tk::Error: Undefined subroutine &chkthrd::stp called at pg4.pm line 97. I will try creating a seperate perl module of the inline code. --kararu. On 10/25/06, Sisyphus <[EMAIL PROTECTED]> wrote: > > > ----- Original Message ----- > From: "Karthika Arunkumar" <[EMAIL PROTECTED]> > To: <inline@perl.org > > Sent: Thursday, October 26, 2006 10:27 AM > Subject: inline c++ in perl.....error in executable ALONE. > > > > HI all, > > In linux I converted my perl program(inline c++) to executable with > PAR > pp. > > when running my .pl everything is fine. > > But when runnung my executable ./file , it says it cant locate object > method > > new and another function(both written in inline c++) > > > > How do I proceed.some hints plssss... > > thanks a lot. > > > I'm of the view that the best solution is to go that one step further > and > convert your Inline CPP script into a perl module. In running your > Inline > CPP script, the XS file already gets written. If you run that script > with > the Config option CLEAN_AFTER_BUILD=>0 you can then grab that XS file > straight out of the build directory. Then you just need a Makefile.Pland a > '.pm' and you can build Your::Module in the usual way. > > Then, in your script, you simply 'use Your::Module;' instead of doing > the > Inline CPP stuff, and pp can then convert that script into a standalone > executable (just like it can do with other scripts that use modules). > > I think it's *possible* to 'pp' your Inline::CPP script. Here's a > copy'n'paste of something I wrote in an earlier similar thread. I think > it > should apply to Inline::CPP as well as Inline::C, but I haven't tested: > > --quote from "Re: PAR and Inline::C - was Re: Is Par dead? Where to > download?"-- > > The following seems to work for me with a simple Inline::C script: > > 1) Compile the Inline::C script: > perl test.pl > > 2) Build the executable: > pp -M FindBin -M Inline -o test.exe test.pl > > 3) Ship the executable with the entire sub-directory that houses the dll > that Inline::C created when 'perl test.pl' was run. That sub-directory > will > be called something like _Inline/lib/auto/nnnn_xx_dddd - where 'nnnn' is > the > name of the script ('test' in this example), 'xx' is the extension you > gave > to the script ('pl' in this example), and 'dddd' is the first four hex > digits of the MD5 digest that Inline calculated for the script. > > Afaict, if that entire directory structure sits alongside test.exe, then > it > will work fine. > > Now .... perhaps that "directory structure" (and the files contained > therein) can be built into the executable - thus rendering it > unnecessary to > distribute that "directory structure" separately with the executable. > Can > that be done ? (My understanding of PAR is not all that flash :-) > > --end quote > > Cheers, > > Rob > >