geoffleach has asked for the wisdom of the Perl Monks concerning the following question:
This concerns the distribution Audio::TagLib and the xs files therein, which interface to the C++ taglib library.
In one of the .xs files, some of the functions that are declared suffer from the (infamous?) error:
Can't locate object method "header" via package "Audio::TagLib::Tag"
Here's a snip of the .xs file. isEmpty() is recognized, header() and the functions that follow it in the file are not.
bool TagLib::ID3v2::Tag::isEmpty() CODE: RETVAL = THIS->isEmpty(); OUTPUT: RETVAL void TagLib::ID3v2::Tag::header() PREINIT: TagLib::ID3v2::Header * h; PPCODE: h = THIS->header(); ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "Audio::TagLib::ID3v2::Header", (void *)h); SvREADONLY_on(SvRV(ST(0))); XSRETURN(1);
Applying nm(1) to the .so file suggests that header() should be located.
t _ZL36XS_Audio__TagLib__ID3v2__Tag_isEmptyP11interpreterP2cv t _ZL35XS_Audio__TagLib__ID3v2__Tag_headerP11interpreterP2cv
Everything in this particular .xs that follows isEmpty() suffers the same fate. However, in the .c file compiled from the .xs files (there are quite a few), other functions from other .xs files do not duffer the same fate.
Insight would be welcome.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Some functions in .xs file can't be found
by syphilis (Archbishop) on Nov 13, 2013 at 02:22 UTC | |
Re: Some functions in .xs file can't be found
by BrowserUk (Patriarch) on Nov 13, 2013 at 01:44 UTC | |
by ikegami (Patriarch) on Nov 13, 2013 at 15:05 UTC | |
by BrowserUk (Patriarch) on Nov 13, 2013 at 16:59 UTC | |
Re: Some functions in .xs file can't be found
by bulk88 (Priest) on Nov 13, 2013 at 06:37 UTC | |
by geoffleach (Scribe) on Nov 13, 2013 at 23:11 UTC | |
Re: Some functions in .xs file can't be found
by Anonymous Monk on Nov 13, 2013 at 01:40 UTC |