http://www.perlmonks.org?node_id=987218

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Hi All, Trying to use Audio::TagLib with Strawberry Perl v5.16.1 on XPSP3. Screen Messages:
C:\Documents and Settings\user\My Documents\Scripts\Perl\Audio>cpanm A +udio::TagLib --> Working on Audio::TagLib Fetching http://www.cpan.org/authors/id/G/GL/GLEACH/Audio-TagLib-1.60. +tar.gz ... OK Configuring Audio-TagLib-1.60 ... N/A ! Configure failed for Audio-TagLib-1.60. See C:\Documents and Setting +s\user\.cpanm\build.log for details. C:\Documents and Settings\user\My Documents\Scripts\Perl\Audio>perl -v This is perl 5, version 16, subversion 1 (v5.16.1) built for MSWin32-x +86-multi-thread Copyright 1987-2012, Larry Wall Perl may be copied only under the terms of either the Artistic License + or the GNU General Public License, which may be found in the Perl 5 source ki +t. Complete documentation for Perl, including FAQ lists, should be found +on this system using "man perl" or "perldoc perl". If you have access to + the Internet, point your browser at http://www.perl.org/, the Perl Home Pa +ge. C:\Documents and Settings\user\My Documents\Scripts\Perl\Audio>
Installation fails with the following in the log:
cpanm (App::cpanminus) 1.5017 on perl 5.014002 built for MSWin32-x86-m +ulti-thread Work directory is /.cpanm/work/1344883446.3864 You have make C:\strawberry\c\bin\dmake.exe You have LWP 6.03 Falling back to Archive::Tar 1.80 Searching File::Find on cpanmetadb ... skipping F/FL/FLORA/perl-5.15.4.tar.gz
I don't understand ??? Thanks fh :)_~

Replies are listed 'Best First'.
Re: Audio::TagLib and Strawberry Perl
by syphilis (Archbishop) on Aug 14, 2012 at 03:26 UTC
    I've seen another weird problem with cpanm (and Inline::CPP) installs today.
    Try using 'cpan' instead of 'cpanm'. (Worked for Inline::CPP.)

    Cheers,
    Rob
      Thank you,
      That got me a bit further, Now it cannot find the taglib libraries ...
      I have built the libraries (taglib.dll, taglib.a) (after almost 20 hours, what a mess) but have no clue where to put them so they are found!
      I have tried adding them to a folder that is in the path, no luck.
      What and Where does the 'cpan Audio::TagLib' install look for in relation to the taglib library components?

      The Error:
      C:\Documents and Settings\user\My Documents\Scripts\Perl\Audio>cpan Au +dio::TagLib CPAN: CPAN::SQLite loaded ok (v0.202) Database was generated on Mon, 13 Aug 2012 19:48:23 GMT Running install for module 'Audio::TagLib' Running make for G/GL/GLEACH/Audio-TagLib-1.60.tar.gz CPAN: Digest::SHA loaded ok (v5.71) CPAN: Compress::Zlib loaded ok (v2.055) Checksum for C:\strawberry\cpan\sources\authors\id\G\GL\GLEACH\Audio-T +agLib-1.60.tar.gz ok CPAN: Archive::Tar loaded ok (v1.88) CPAN: File::Temp loaded ok (v0.22) CPAN: Parse::CPAN::Meta loaded ok (v1.4404) CPAN: CPAN::Meta loaded ok (v2.120921) CPAN: Module::CoreList loaded ok (v2.70) CPAN.pm: Building G/GL/GLEACH/Audio-TagLib-1.60.tar.gz The system cannot find the path specified. Please install the taglib C++ library first. I need the package that has taglib-config at Makefile.PL line 7. No 'Makefile' createdCPAN: YAML::XS loaded ok (v0.38) GLEACH/Audio-TagLib-1.60.tar.gz C:\strawberry\perl\bin\perl.exe Makefile.PL -- NOT OK Running make test Make had some problems, won't test Running make install Make had some problems, won't install Stopping: 'install' failed for 'Audio::TagLib'. Could not read metadata file. Falling back to other methods to determi +ne prerequisites C:\Documents and Settings\user\My Documents\Scripts\Perl\Audio>

      Thanks fh : )_~
        Now it cannot find the taglib libraries ...

        The dll needs to be in the path. Options for making the import lib (taglib.a) locatable include:

        1) placing it in C:/strawberry/c/lib
        2) setting the LIBRARY_PATH environment variable to its location (set LIBRARY_PATH=C:\wherever\it\is).

        Similarly, if there are taglib headers that need to be found you can:

        1) place them in C:/strawberry/c/include
        2) set the CPATH environment variable to their location (set CPATH=C:\wherever\they\are).

        Not sure if the "LIBRARY_PATH" approach will work on your strawberry. It depends upon which version of ExtUtils::MakeMaker you have.
        The "CPATH" solution should work fine on all versions of strawberry.

        Cheers,
        Rob
Re: Audio::TagLib and Strawberry Perl
by Anonymous Monk on Aug 22, 2012 at 09:58 UTC
    Thanks for the Win32 suggestions, They both worked FLAWLESS.

    Well, I got a little further ...

    I did successfully create a simple C++ class and Library with XS interface that works ... So I know the system is good at least at that simple level.

    During that I picked up how to shut up the "PerlLIO_read and write complaints, that sure cleans things up, however ultimately it still fails ... :(

    In TagLib.xs, Just after:

    #include ppport.h
    Add the following two lines:
    #undef PerlLIO_read #undef PerlLIO_write
    Don't know the consequences yet, I'll learn that later ... :)

    Back at it

    -Enjoy
    fh :)_~

Re: Audio::TagLib and Strawberry Perl
by Anonymous Monk on Aug 22, 2012 at 16:54 UTC
    Hi All,

    Think I'm getting close, unfortunately I have to shift gears to another project for a few hours.
    Here is where I'm at with errors:

    C:\strawberry\cpan\build\Audio-TagLib-1.61>dmake g++ -c -IC:\strawberry\c\include -I./include -IC:/Libraries/taglib/Li +b -IC:/Libraries/taglib/include/taglib -s -O2 -DWIN32 -DPERL_TEXT +MODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict- +aliasing -mms-bitfields -s -O2 -DVERSION=\"1.61\" -DXS_VERSION= +\"1.61\" "-IC:\strawberry\perl\lib\CORE" TagLib.c TagLib.xs:23:15: warning: extra tokens at end of #ifdef directive [ena +bled by default] TagLib.xs:24:15: warning: extra tokens at end of #undef directive [ena +bled by default] TagLib.xs:26:16: warning: extra tokens at end of #undef directive [ena +bled by default] TagLib.xs:32:0: warning: "do_open" redefined [enabled by default] TagLib.xs:31:0: note: this is the location of the previous definition TagLib.xs:34:0: warning: "do_close" redefined [enabled by default] TagLib.xs:33:0: note: this is the location of the previous definition In file included from c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/ +4.6.3/include/c++/ios:44:0, from c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/ +4.6.3/include/c++/ostream:40, from c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/ +4.6.3/include/c++/iostream:40, from C:/Libraries/taglib/include/taglib/tbytevector.h +:33, from C:/Libraries/taglib/include/taglib/apeitem.h:29, from TagLib.xs:29: c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected ')' before '*' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected ')' before '*' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected ')' before '*' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected ')' before '*' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected ';' at end of member declaration c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected unqualified-id before ')' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected ';' at end of member declaration c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected unqualified-id before ')' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf: In member function 'std::basic_streambuf<_CharT, _Traits>::__s +treambuf_type* std::basic_streambuf<_CharT, _Traits>::pubsetbuf(std:: +basic_streambuf<_CharT, _Traits>::char_type*, std::streamsize)': c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:238:22: error: expected unqualified-id before '(' token ./xs/tstring.xs: In function 'void XS_Audio__TagLib__String_new(PerlIn +terpreter*, CV*)': ./xs/tstring.xs:90:14: warning: deprecated conversion from string cons +tant to 'char*' [-Wwrite-strings] ./xs/tstring.xs:93:14: warning: deprecated conversion from string cons +tant to 'char*' [-Wwrite-strings] ./xs/tstring.xs:104:15: warning: deprecated conversion from string con +stant to 'char*' [-Wwrite-strings] ./xs/tstring.xs:107:15: warning: deprecated conversion from string con +stant to 'char*' [-Wwrite-strings] ./xs/tstring.xs:110:15: warning: deprecated conversion from string con +stant to 'char*' [-Wwrite-strings] ./xs/tstring.xs:113:15: warning: deprecated conversion from string con +stant to 'char*' [-Wwrite-strings] ./xs/tstring.xs:116:15: warning: deprecated conversion from string con +stant to 'char*' [-Wwrite-strings] ./xs/fileref.xs: In function 'void XS_Audio__TagLib__FileRef_new(PerlI +nterpreter*, CV*)': ./xs/fileref.xs:17:17: warning: deprecated conversion from string cons +tant to 'char*' [-Wwrite-strings] dmake: Error code 129, while making 'TagLib.o' C:\strawberry\cpan\build\Audio-TagLib-1.61>

    Any Ideas ???
    Searching provides lots of hits, no answers YET!

    Thanks

    -Enjoy
    fh :)_~

Re: Audio::TagLib and Strawberry Perl
by Anonymous Monk on Aug 22, 2012 at 23:09 UTC
    Yipee! It compiles to completion ... though broken to get there . :(

    Hopefully I have done the foot work and narrowed it down for a C++ guru to be able to resolve this in minutes! (or less)
    The issue revolves around iostream (I think they are the overloaded iostream operators)??

    Short Version.
    With the following changes one can get Audio::TagLib to compile and install ... However it will not return data.

    After Taglib is installed, edit the following three files.

    tbytevector.h tstringlist.h tstring.h
    Commenting out the
    #include <iostream>

    Then editing Audio::TagLib/TagLib.xs and adding the following two lines just after #include "ppport.h"

    #undef PerlLIO_read #undef PerlLIO_write

    And last but not least modifying Makefile.pl ... I'll just give mine as an example, It's hacked it so please don't chew me up to small! (Included at end)

    Long version and Installation details. (It's quick and easy)
    Installing Audio::TagLib on Windows XP SP3 with Strawberry Perl v5.16.1.1.
    I'll assume Strawberry Perl (or your Win32 Perl Pref) and CMake is already installed.

    Taglib-1.7.2 can be found here: https://github.com/downloads/taglib/taglib/taglib-1.7.2.tar.gz
    And Audio::TagLib here: http://search.cpan.org/CPAN/authors/id/G/GL/GLEACH/Audio-TagLib-1.61.tar.gz

    Change directory to where you expanded Taglib. (C:\Libraries\Taglib-1.7.2)
    Run:

    cmake -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=C:/Libraries/TagLib +-DCMAKE_RELEASE_TYPE=Release . gmake gmake install

    Taglib is now installed!
    Following my examples Taglib will be installed to: C:\Libraries\Taglib

    At this time Audio::Taglib will not compile do to issues with iostream and the overloaded operators (I think thats what they are), I am NO C++ guru, I do not understand them, Hopefully I have done the foot work for a C++ guru to be able to resolve this in minutes! (or less)

    So to get it to compile you need to edit the following three Taglib header files (C:\Libraries\Taglib\Include\Taglib\):

    tbytevector.h tstringlist.h tstring.h

    Comment out the: #include <iostream>

    Expand Audio::TagLib to: C:\Strawberry\cpan\build\Audio-TagLib-1.61
    CD to: C:\Strawberry\cpan\build\Audio-TagLib-1.61
    Edit Makefile.pl
    All the "taglib-config" stuff has got to go ... Replicate with hard coded values.
    See my Makefile.pl included at the end.
    Edit TagLib.xs
    Add the following two lines right after #include "ppport.h"

    #undef PerlLIO_read #undef PerlLIO_write
    Run:
    perl Makefile.pl dmake dmake install

    My Makefile.pl

    use 5.008001; use ExtUtils::MakeMaker; use Config; my $libdir = 'C:/Libraries/taglib/lib'; my $includedir = 'C:/Libraries/taglib/include'; my $libver = '1.7.2'; my $CC = 'g++'; my $libs = ' -L' . $libdir . ' -llibtag.dll'; #my $cflags = '$Config{'ccflags'}; my $cflags = $Config{'ccflags'}; my $inc = '-I' . $Config{'incpath'} . ' -I./include' . ' -I' . + $includedir . '/taglib'; my $ldd = $Config{'lddlflags'} . ' ' . $Config{'ccdlflags'} . + ' ' . $Config{'cccdlflags'}; # Configure various os-es my $define; if ( $Config{'osname'} eq 'darwin' ) { $define = '-D_BSD_ICONV -DNO_DOXYGEN'; $libs .= ' -L/System/Library/Perl/lib/'. $Config{version}. ' -lper +l -liconv'; } elsif ( $Config{'osname'} eq 'freebsd' ) { $define = '-D_BSD_ICONV -DNO_DOXYGEN'; $libs .= ' -liconv'; } elsif ( $Config{'osname'} eq 'MSWin32' ) { # $define = '-D_BSD_ICONV -DNO_DOXYGEN'; # $define = '-DNO_DOXYGEN'; $libs .= ' -liconv'; } #$Verbose = 2; WriteMakefile( NAME => 'Audio::TagLib', MIN_PERL_VERSION => '5.008001', VERSION_FROM => 'lib/Audio/TagLib.pm', LICENSE => 'perl', CC => $CC, LD => '$(CC)', XSOPT => '-C++ -hiertype', CCFLAGS => $cflags, LIBS => $libs, DEFINE => $define, INC => $inc, LDDLFLAGS => $ldd, ( $Config{'version'} >= 5.005 ? ( ABSTRACT_FROM => 'lib/Audio/TagLib.pm', AUTHOR => 'Geoffrey Leach <gleach@cpan.org>' ) : () ), PREREQ_PM => { "Encode" => 0, "Test::Deep" => 0, "File::Slurp" => 0, "Test::More" => 0, "Test::Output" => 0, }, "CONFIGURE_REQUIRES" => { "ExtUtils::MakeMaker" => 0, "Config" => 0, }, );

    Hopefully this will encourage a C++ guru to look into this now that It's been narrowed down.

    It's gotta be something stupid simple.

    -Enjoy
    fh :)_~

Re: Audio::TagLib and Strawberry Perl
by Anonymous Monk on Aug 23, 2012 at 01:35 UTC
    I guess I should have included the errors.

    Just the iostream errors ...

    In file included from c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/ +4.6.3/include/c++/ios:44:0, from c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/ +4.6.3/include/c++/ostream:40, from c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/ +4.6.3/include/c++/iostream:40, from C:/Libraries/taglib/include/taglib/tbytevector.h +:34, from C:/Libraries/taglib/include/taglib/apeitem.h:29, from TagLib.xs:29: c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected ')' before '*' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected ')' before '*' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected ')' before '*' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected ')' before '*' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected ';' at end of member declaration c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected unqualified-id before ')' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected ';' at end of member declaration c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected unqualified-id before ')' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf: In member function 'std::basic_streambuf<_CharT, _Traits>::__s +treambuf_type* std::basic_streambuf<_CharT, _Traits>::pubsetbuf(std:: +basic_streambuf<_CharT, _Traits>::char_type*, std::streamsize)': c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:238:22: error: expected unqualified-id before '(' token

    The full results from (r is a batch file):

    dmake clean makefile.pl dmake
    C:\strawberry\cpan\build\Audio-TagLib-1.61>r C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e rm_f -- \ *.a core \ core.[0-9] core.[0-9][0-9] \ TagLib.bso TagLib.c \ blib\arch\auto\Audio\TagLib\extralibs.ld pm_to_blib.ts \ MYMETA.json core.[0-9][0-9][0-9][0-9] \ MYMETA.yml TagLib.x \ TagLib.bs perl.exe \ tmon.out blib\arch\auto\Audio\TagLib\extralibs.all \ *.o pm_to_blib \ blibdirs.ts core.[0-9][0-9][0-9][0-9][0-9] \ *perl.core core.*perl.*.? \ Makefile.aperl TagLib.def \ perl core.[0-9][0-9][0-9] \ mon.out libTagLib.def \ perlmain.c perl.exe \ so_locations TagLib.exp C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e rm_rf -- \ dll.exp dll.base \ blib C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e mv -- Makefile +Makefile.old > NUL Checking if your kit is complete... Looks good Writing Makefile for Audio::TagLib Writing MYMETA.yml and MYMETA.json cp lib/Audio/TagLib/ByteVector/Iterator.pm blib\lib\Audio\TagLib\ByteV +ector\Iterator.pm cp lib/Audio/TagLib/ID3v1/StringHandler.pm blib\lib\Audio\TagLib\ID3v1 +\StringHandler.pm cp lib/Audio/TagLib/String.pm blib\lib\Audio\TagLib\String.pm cp lib/Audio/TagLib/ID3v2/UniqueFileIdentifierFrame.pm blib\lib\Audio\ +TagLib\ID3v2\UniqueFileIdentifierFrame.pm cp lib/Audio/TagLib/ID3v2/FrameListMap/Iterator.pm blib\lib\Audio\TagL +ib\ID3v2\FrameListMap\Iterator.pm cp lib/Audio/TagLib/MPC/Properties.pm blib\lib\Audio\TagLib\MPC\Proper +ties.pm cp lib/Audio/TagLib/AudioProperties.pm blib\lib\Audio\TagLib\AudioProp +erties.pm cp lib/Audio/TagLib/MPEG/File.pm blib\lib\Audio\TagLib\MPEG\File.pm cp lib/Audio/TagLib/Ogg/File.pm blib\lib\Audio\TagLib\Ogg\File.pm cp lib/Audio/TagLib/ID3v2/Footer.pm blib\lib\Audio\TagLib\ID3v2\Footer +.pm cp lib/Audio/TagLib/ID3v2/Tag.pm blib\lib\Audio\TagLib\ID3v2\Tag.pm cp lib/Audio/TagLib/String/Iterator.pm blib\lib\Audio\TagLib\String\It +erator.pm cp lib/Audio/TagLib/ID3v2/UnknownFrame.pm blib\lib\Audio\TagLib\ID3v2\ +UnknownFrame.pm cp lib/Audio/TagLib/Vorbis/File.pm blib\lib\Audio\TagLib\Vorbis\File.p +m cp lib/Audio/TagLib/Vorbis/Properties.pm blib\lib\Audio\TagLib\Vorbis\ +Properties.pm cp lib/Audio/TagLib/Tag.pm blib\lib\Audio\TagLib\Tag.pm cp lib/Audio/TagLib/ID3v1/GenreMap/Iterator.pm blib\lib\Audio\TagLib\I +D3v1\GenreMap\Iterator.pm cp lib/Audio/TagLib/Ogg/FieldListMap.pm blib\lib\Audio\TagLib\Ogg\Fiel +dListMap.pm cp lib/Audio/TagLib/APE/Footer.pm blib\lib\Audio\TagLib\APE\Footer.pm cp lib/Audio/TagLib/ID3v2/UserTextIdentificationFrame.pm blib\lib\Audi +o\TagLib\ID3v2\UserTextIdentificationFrame.pm cp lib/Audio/TagLib/File.pm blib\lib\Audio\TagLib\File.pm cp lib/Audio/TagLib/ID3v2/CommentsFrame.pm blib\lib\Audio\TagLib\ID3v2 +\CommentsFrame.pm cp lib/Audio/TagLib/ID3v2/Header.pm blib\lib\Audio\TagLib\ID3v2\Header +.pm cp lib/Audio/TagLib/ID3v2/TextIdentificationFrame.pm blib\lib\Audio\Ta +gLib\ID3v2\TextIdentificationFrame.pm cp lib/Audio/TagLib/APE/Tag.pm blib\lib\Audio\TagLib\APE\Tag.pm cp lib/Audio/TagLib/Ogg/Vorbis/File.pm blib\lib\Audio\TagLib\Ogg\Vorbi +s\File.pm cp lib/Audio/TagLib/ID3v2/AttachedPictureFrame.pm blib\lib\Audio\TagLi +b\ID3v2\AttachedPictureFrame.pm cp lib/Audio/TagLib/ID3v2/RelativeVolumeFrame.pm blib\lib\Audio\TagLib +\ID3v2\RelativeVolumeFrame.pm cp lib/Audio/TagLib/ID3v2/ExtendedHeader.pm blib\lib\Audio\TagLib\ID3v +2\ExtendedHeader.pm cp lib/Audio/TagLib/FLAC/File.pm blib\lib\Audio\TagLib\FLAC\File.pm cp lib/Audio/TagLib/ID3v2/Frame.pm blib\lib\Audio\TagLib\ID3v2\Frame.p +m cp lib/Audio/TagLib/Ogg/PageHeader.pm blib\lib\Audio\TagLib\Ogg\PageHe +ader.pm cp lib/Audio/TagLib/MPC/File.pm blib\lib\Audio\TagLib\MPC\File.pm cp lib/Audio/TagLib/FLAC/Properties.pm blib\lib\Audio\TagLib\FLAC\Prop +erties.pm cp lib/Audio/TagLib/ID3v2.pm blib\lib\Audio\TagLib\ID3v2.pm cp lib/Audio/TagLib/ID3v2/RelativeVolumeFrame/PeakVolume.pm blib\lib\A +udio\TagLib\ID3v2\RelativeVolumeFrame\PeakVolume.pm cp lib/Audio/TagLib/Ogg/XiphComment.pm blib\lib\Audio\TagLib\Ogg\XiphC +omment.pm cp lib/Audio/TagLib/Ogg/FLAC/File.pm blib\lib\Audio\TagLib\Ogg\FLAC\Fi +le.pm cp lib/Audio/TagLib/ID3v1.pm blib\lib\Audio\TagLib\ID3v1.pm cp lib/Audio/TagLib/MPEG/Header.pm blib\lib\Audio\TagLib\MPEG\Header.p +m cp lib/Audio/TagLib/ID3v2/FrameFactory.pm blib\lib\Audio\TagLib\ID3v2\ +FrameFactory.pm cp lib/Audio/TagLib/FileRef/FileTypeResolver.pm blib\lib\Audio\TagLib\ +FileRef\FileTypeResolver.pm cp lib/Audio/TagLib/Ogg/FieldListMap/Iterator.pm blib\lib\Audio\TagLib +\Ogg\FieldListMap\Iterator.pm cp lib/Audio/TagLib/APE/Item.pm blib\lib\Audio\TagLib\APE\Item.pm cp lib/Audio/TagLib/ID3v2/FrameList.pm blib\lib\Audio\TagLib\ID3v2\Fra +meList.pm cp lib/Audio/TagLib/ID3v2/FrameList/Iterator.pm blib\lib\Audio\TagLib\ +ID3v2\FrameList\Iterator.pm cp lib/Audio/TagLib/ID3v1/GenreMap.pm blib\lib\Audio\TagLib\ID3v1\Genr +eMap.pm cp lib/Audio/TagLib/StringList.pm blib\lib\Audio\TagLib\StringList.pm cp lib/Audio/TagLib/MPEG/XingHeader.pm blib\lib\Audio\TagLib\MPEG\Xing +Header.pm cp lib/Audio/TagLib/APE/ItemListMap.pm blib\lib\Audio\TagLib\APE\ItemL +istMap.pm cp lib/Audio/TagLib/Ogg/Vorbis/Properties.pm blib\lib\Audio\TagLib\Ogg +\Vorbis\Properties.pm cp lib/Audio/TagLib/ID3v2/FrameListMap.pm blib\lib\Audio\TagLib\ID3v2\ +FrameListMap.pm cp lib/Audio/TagLib/ByteVectorList.pm blib\lib\Audio\TagLib\ByteVector +List.pm cp lib/Audio/TagLib/ID3v2/SynchData.pm blib\lib\Audio\TagLib\ID3v2\Syn +chData.pm cp lib/Audio/TagLib.pm blib\lib\Audio\TagLib.pm cp lib/Audio/TagLib/Ogg/Page.pm blib\lib\Audio\TagLib\Ogg\Page.pm cp lib/Audio/TagLib/ByteVector.pm blib\lib\Audio\TagLib\ByteVector.pm cp lib/Audio/TagLib/MPEG/Properties.pm blib\lib\Audio\TagLib\MPEG\Prop +erties.pm cp lib/Audio/TagLib/ID3v1/Tag.pm blib\lib\Audio\TagLib\ID3v1\Tag.pm cp lib/Audio/TagLib/FileRef.pm blib\lib\Audio\TagLib\FileRef.pm cp lib/Audio/TagLib/APE/ItemListMap/Iterator.pm blib\lib\Audio\TagLib\ +APE\ItemListMap\Iterator.pm C:\strawberry\perl\bin\perl.exe C:\strawberry\perl\lib\ExtUtils\xsubpp + -C++ -hiertype -typemap C:\strawberry\perl\lib\ExtUtils\typemap -ty +pemap typemap TagLib.xs > TagLib.xsc && C:\strawberry\perl\bin\perl. +exe -MExtUtils::Command -e mv -- TagLib.xsc TagLib.c g++ -c -IC:\strawberry\c\include -I./include -IC:/Libraries/taglib/in +clude/taglib -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPL +ICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields +-s -O2 -DVERSION=\"1.61\" -DXS_VERSION=\"1.61\" "-IC:\strawber +ry\perl\lib\CORE" -DNO_DOXYGEN TagLib.c TagLib.xs:23:15: warning: extra tokens at end of #ifdef directive [ena +bled by default] TagLib.xs:24:15: warning: extra tokens at end of #undef directive [ena +bled by default] TagLib.xs:26:16: warning: extra tokens at end of #undef directive [ena +bled by default] TagLib.xs:32:0: warning: "do_open" redefined [enabled by default] TagLib.xs:31:0: note: this is the location of the previous definition TagLib.xs:34:0: warning: "do_close" redefined [enabled by default] TagLib.xs:33:0: note: this is the location of the previous definition In file included from c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/ +4.6.3/include/c++/ios:44:0, from c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/ +4.6.3/include/c++/ostream:40, from c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/ +4.6.3/include/c++/iostream:40, from C:/Libraries/taglib/include/taglib/tbytevector.h +:34, from C:/Libraries/taglib/include/taglib/apeitem.h:29, from TagLib.xs:29: c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected ')' before '*' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected ')' before '*' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected ')' before '*' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected ')' before '*' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected ';' at end of member declaration c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected unqualified-id before ')' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected ';' at end of member declaration c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:571:7: error: expected unqualified-id before ')' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf: In member function 'std::basic_streambuf<_CharT, _Traits>::__s +treambuf_type* std::basic_streambuf<_CharT, _Traits>::pubsetbuf(std:: +basic_streambuf<_CharT, _Traits>::char_type*, std::streamsize)': c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/stre +ambuf:238:22: error: expected unqualified-id before '(' token ./xs/tstring.xs: In function 'void XS_Audio__TagLib__String_new(PerlIn +terpreter*, CV*)': ./xs/tstring.xs:90:14: warning: deprecated conversion from string cons +tant to 'char*' [-Wwrite-strings] ./xs/tstring.xs:93:14: warning: deprecated conversion from string cons +tant to 'char*' [-Wwrite-strings] ./xs/tstring.xs:104:15: warning: deprecated conversion from string con +stant to 'char*' [-Wwrite-strings] ./xs/tstring.xs:107:15: warning: deprecated conversion from string con +stant to 'char*' [-Wwrite-strings] ./xs/tstring.xs:110:15: warning: deprecated conversion from string con +stant to 'char*' [-Wwrite-strings] ./xs/tstring.xs:113:15: warning: deprecated conversion from string con +stant to 'char*' [-Wwrite-strings] ./xs/tstring.xs:116:15: warning: deprecated conversion from string con +stant to 'char*' [-Wwrite-strings] ./xs/fileref.xs: In function 'void XS_Audio__TagLib__FileRef_new(PerlI +nterpreter*, CV*)': ./xs/fileref.xs:17:17: warning: deprecated conversion from string cons +tant to 'char*' [-Wwrite-strings] dmake: Error code 129, while making 'TagLib.o' C:\strawberry\cpan\build\Audio-TagLib-1.61>

    -Enjoy
    fh :)_~

      c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/streambuf:571:7: error: expected ')' before '*' token

      Yes, that's as far as I got with 1.61, too.
      I think it means that streambuf is being parsed as a C file instead of as the C++ file that it is.
      But I don't know why that is happening or what to do about it. I do see one invocation of 'gcc' in the generated Makefile:
      .c.i: gcc -E -c $(PASTHRU_INC) $(INC) \ $(CCFLAGS) $(OPTIMIZE) \ $(PERLTYPE) $(MPOLLUTE) $(DEFINE_VERSION) \ $(XS_DEFINE_VERSION) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFIN +E) $(DEFINE) $*.c > $*.i
      But I see nothing in the build output to indicate that's causing the problem. (Still, perhaps that's something that could be investigated further.)

      I think you're quite right that there's nothing wrong with the taglib library, and that the problem is Audio::TagLib.
      I think it's a pity that Audio::TagLib has chosen to build against the libtag C++ library, instead of against the libtag_c C library.
      At least I presume libtag_c is a C library - and that I'd therefore have a good chance of being able to work around any problems in the offchance that it didn't build straight out of the box.

      Cheers,
      Rob
Re: Audio::TagLib and Strawberry Perl - New Details
by Anonymous Monk on Aug 19, 2012 at 06:46 UTC
    Hi all,

    I am trying to get Audio::TagLib v1.61 to work in Windows (XP SP3) with Strawberry Perl v5.14.2.

    Taglib-1.6.3 is compiled and installed using the same w64-MinGW32 tools that I'm trying to use to build Audio::TagLib. Taglib works just fine.

    I started with Strawberry Perl v5.16.1.1, Taglib-1.7.2, Audio::TagLib v1.61, I backed the versions down one at a time for each component and nothing ever changed!

    I will be going back to Strawberry Perl v5.16.1.1, Taglib-1.7.2 here shortly, if I gotta fix something I want it to be a new something ... :)

    So after some grulling hair tourture, I have determined that the issue revolves around C macros and C User defined types defined and or used on either side, the Taglib side as well as the Audio::TagLib side.
    This is during the Audio::TagLib build process.

    This leads me to believe it's a compiler directive, option, bad w64-MinGW32 library or something like that ...

    For example, In TagLib/include/taglib/fileref.h
    TAGLIB_IGNORE_MISSING_DESTRUCTOR
    Causes the first fatal error ...
    It's definition is in: TagLib/include/taglib/taglib.h
    #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MIN +OR__ > 1)) #define TAGLIB_IGNORE_MISSING_DESTRUCTOR _Pragma("GCC diagnostic ignor +ed \"-Wnon-virtual-dtor\"") #else #define TAGLIB_IGNORE_MISSING_DESTRUCTOR #endif
    The _Pragma(...) causes the error, comment it out and it goes further, until the next one:
    XS_Audio__TagLib__ByteVectorList_new
    From the second Sub in Audio::TagLib/TagLib.c:
    TagLib.c is auto generated by the XS system.
    XS_EUPXS(XS_Audio__TagLib__ByteVectorList_new); /* prototype to +pass -Wmissing-prototypes */ XS_EUPXS(XS_Audio__TagLib__ByteVectorList_new)

    I have not looked for the definition yet ...

    And from Audio::TagLib/TagLib.c:
    #ifdef do_open(a,b,c,d,e,f,g) #undef do_open(a,b,c,d,e,f,g) #undef do_open #undef do_close(a,b) #undef do_close #endif #include "apeitem.h" #ifndef do_open #define do_open Perl_do_open #define do_open(a,b,c,d,e,f,g) Perl_do_open(aTHX_ a,b,c,d,e,f,g) #define do_close Perl_do_close #define do_close(a,b) Perl_do_close(aTHX_ a,b) #endif
    Causes a fatal error.

    If I run dmake -v, I get these failures:
    dmake: Openning [C:\Strawberry\c\bin\startup\winnt\mingw\recipe +s.mk] for read (fail) dmake: Include file [C:\Strawberry\c\bin\startup\winnt\mingw\re +cipes.mk] was not found. dmake: Openning [project.mk] for read (fail) dmake: Include file [project.mk] was not found. dmake: Openning [makefile.mk] for read (fail) dmake: Infering prerequisite(s) and recipe for [makefile.mk]
    Don't know if they could be the issue or part of it.

    Any ideas?
    Things to try?
    Diagnostic method?
    I'm stuck, I need a kick in the ...
    A direction, hint, something!

    Following is the screen cap's of the process starting following a 'dmake clean'

    Running perl's makefile.pl with Verbose=2
    C:\Strawberry\cpan\build\Audio-TagLib-1.61-EZ0Hnb>makefile.pl MakeMaker (v6.62) Checking if your kit is complete... Looks good Warning: prerequisite Test::Output 0 not found. Blessing Object into class [PACK001] ABSTRACT_FROM => q[lib/Audio/TagLib.pm] AUTHOR => [q[Geoffrey Leach <gleach@cpan.org>]] BUILD_REQUIRES => { } CC => q[g++] CCFLAGS => q[ -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUST +OMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasin +g -mms-bitfields] CONFIGURE_REQUIRES => { ExtUtils::MakeMaker=>q[0], Config=>q[0] } DEFINE => q[-D_BSD_ICONV -DNO_DOXYGEN] INC => q[-IC:\Strawberry\c\include -I./include -IC:/Libraries/taglib +/include/taglib] LD => q[$(CC)] LDDLFLAGS => q[-mdll -s -L"C:\Strawberry\perl\lib\CORE" -L"C:\Strawb +erry\c\lib" ] LIBS => q[ -LC:/Libraries/taglib/lib -ltag -liconv] LICENSE => q[perl] MIN_PERL_VERSION => q[5.008001] NAME => q[Audio::TagLib] PREREQ_PM => { Test::More=>q[0], Test::Output=>q[0], Test::Deep=>q[0 +], File::Slurp=>q[0], Encode=>q[0] } VERSION_FROM => q[lib/Audio/TagLib.pm] XSOPT => q[-C++ -hiertype] Prefixing man1dir Prefixing vendorman1dir Prefixing bin prefixify installbin => C:\Strawberry\perl\bin from C:\Strawberry\perl to $(PERLPREFIX) now C:\Strawberry\perl\bin INSTALLBIN == C:\Strawberry\perl\bin Prefixing vendorlib prefixify installvendorlib => C:\Strawberry\perl\vendor\lib from C:\Strawberry\perl\vendor to $(VENDORPREFIX) now C:\Strawberry\perl\vendor\lib INSTALLVENDORLIB == C:\Strawberry\perl\vendor\lib Prefixing sitelib prefixify installsitelib => C:\Strawberry\perl\site\lib from C:\Strawberry\perl\site to $(SITEPREFIX) now C:\Strawberry\perl\site\lib INSTALLSITELIB == C:\Strawberry\perl\site\lib Prefixing sitearch prefixify installsitearch => C:\Strawberry\perl\site\lib from C:\Strawberry\perl\site to $(SITEPREFIX) now C:\Strawberry\perl\site\lib INSTALLSITEARCH == C:\Strawberry\perl\site\lib Prefixing man3dir Prefixing siteman3dir Prefixing vendorman3dir Prefixing vendorarch prefixify installvendorarch => C:\Strawberry\perl\vendor\lib from C:\Strawberry\perl\vendor to $(VENDORPREFIX) now C:\Strawberry\perl\vendor\lib INSTALLVENDORARCH == C:\Strawberry\perl\vendor\lib Prefixing sitebin prefixify installsitebin => C:\Strawberry\perl\site\bin from C:\Strawberry\perl\site to $(SITEPREFIX) now C:\Strawberry\perl\site\bin INSTALLSITEBIN == C:\Strawberry\perl\site\bin Prefixing script prefixify installscript => C:\Strawberry\perl\bin from C:\Strawberry\perl to $(PERLPREFIX) now C:\Strawberry\perl\bin INSTALLSCRIPT == C:\Strawberry\perl\bin Prefixing siteman1dir Prefixing vendorscript prefixify installvendorscript => C:\Strawberry\perl\bin from C:\Strawberry\perl\vendor to $(VENDORPREFIX) now C:\Strawberry\perl\bin INSTALLVENDORSCRIPT == C:\Strawberry\perl\bin Prefixing vendorbin prefixify installvendorbin => C:\Strawberry\perl\bin from C:\Strawberry\perl\vendor to $(VENDORPREFIX) now C:\Strawberry\perl\bin INSTALLVENDORBIN == C:\Strawberry\perl\bin Prefixing sitescript prefixify installsitescript => C:\Strawberry\perl\site\bin from C:\Strawberry\perl\site to $(SITEPREFIX) now C:\Strawberry\perl\site\bin INSTALLSITESCRIPT == C:\Strawberry\perl\site\bin Prefixing archlib prefixify installarchlib => C:\Strawberry\perl\lib from C:\Strawberry\perl to $(PERLPREFIX) now C:\Strawberry\perl\lib INSTALLARCHLIB == C:\Strawberry\perl\lib Prefixing privlib prefixify installprivlib => C:\Strawberry\perl\lib from C:\Strawberry\perl to $(PERLPREFIX) now C:\Strawberry\perl\lib INSTALLPRIVLIB == C:\Strawberry\perl\lib Searching PMLIBDIRS: lib libscan(lib/Audio/TagLib.pm) => 'blib\lib\Audio\TagLib.pm' libscan(lib/Audio/TagLib/AudioProperties.pm) => 'blib\lib\Audio\TagLib +\AudioProperties.pm' libscan(lib/Audio/TagLib/ByteVector.pm) => 'blib\lib\Audio\TagLib\Byte +Vector.pm' libscan(lib/Audio/TagLib/ByteVectorList.pm) => 'blib\lib\Audio\TagLib\ +ByteVectorList.pm' libscan(lib/Audio/TagLib/File.pm) => 'blib\lib\Audio\TagLib\File.pm' libscan(lib/Audio/TagLib/FileRef.pm) => 'blib\lib\Audio\TagLib\FileRef +.pm' libscan(lib/Audio/TagLib/ID3v1.pm) => 'blib\lib\Audio\TagLib\ID3v1.pm' libscan(lib/Audio/TagLib/ID3v2.pm) => 'blib\lib\Audio\TagLib\ID3v2.pm' libscan(lib/Audio/TagLib/String.pm) => 'blib\lib\Audio\TagLib\String.p +m' libscan(lib/Audio/TagLib/StringList.pm) => 'blib\lib\Audio\TagLib\Stri +ngList.pm' libscan(lib/Audio/TagLib/Tag.pm) => 'blib\lib\Audio\TagLib\Tag.pm' libscan(lib/Audio/TagLib/APE/Footer.pm) => 'blib\lib\Audio\TagLib\APE\ +Footer.pm' libscan(lib/Audio/TagLib/APE/Item.pm) => 'blib\lib\Audio\TagLib\APE\It +em.pm' libscan(lib/Audio/TagLib/APE/ItemListMap.pm) => 'blib\lib\Audio\TagLib +\APE\ItemListMap.pm' libscan(lib/Audio/TagLib/APE/Tag.pm) => 'blib\lib\Audio\TagLib\APE\Tag +.pm' libscan(lib/Audio/TagLib/APE/ItemListMap/Iterator.pm) => 'blib\lib\Aud +io\TagLib\APE\ItemListMap\Iterator.pm' libscan(lib/Audio/TagLib/ByteVector/Iterator.pm) => 'blib\lib\Audio\Ta +gLib\ByteVector\Iterator.pm' libscan(lib/Audio/TagLib/FileRef/FileTypeResolver.pm) => 'blib\lib\Aud +io\TagLib\FileRef\FileTypeResolver.pm' libscan(lib/Audio/TagLib/FLAC/File.pm) => 'blib\lib\Audio\TagLib\FLAC\ +File.pm' libscan(lib/Audio/TagLib/FLAC/Properties.pm) => 'blib\lib\Audio\TagLib +\FLAC\Properties.pm' libscan(lib/Audio/TagLib/ID3v1/GenreMap.pm) => 'blib\lib\Audio\TagLib\ +ID3v1\GenreMap.pm' libscan(lib/Audio/TagLib/ID3v1/StringHandler.pm) => 'blib\lib\Audio\Ta +gLib\ID3v1\StringHandler.pm' libscan(lib/Audio/TagLib/ID3v1/Tag.pm) => 'blib\lib\Audio\TagLib\ID3v1 +\Tag.pm' libscan(lib/Audio/TagLib/ID3v1/GenreMap/Iterator.pm) => 'blib\lib\Audi +o\TagLib\ID3v1\GenreMap\Iterator.pm' libscan(lib/Audio/TagLib/ID3v2/AttachedPictureFrame.pm) => 'blib\lib\A +udio\TagLib\ID3v2\AttachedPictureFrame.pm' libscan(lib/Audio/TagLib/ID3v2/CommentsFrame.pm) => 'blib\lib\Audio\Ta +gLib\ID3v2\CommentsFrame.pm' libscan(lib/Audio/TagLib/ID3v2/ExtendedHeader.pm) => 'blib\lib\Audio\T +agLib\ID3v2\ExtendedHeader.pm' libscan(lib/Audio/TagLib/ID3v2/Footer.pm) => 'blib\lib\Audio\TagLib\ID +3v2\Footer.pm' libscan(lib/Audio/TagLib/ID3v2/Frame.pm) => 'blib\lib\Audio\TagLib\ID3 +v2\Frame.pm' libscan(lib/Audio/TagLib/ID3v2/FrameFactory.pm) => 'blib\lib\Audio\Tag +Lib\ID3v2\FrameFactory.pm' libscan(lib/Audio/TagLib/ID3v2/FrameList.pm) => 'blib\lib\Audio\TagLib +\ID3v2\FrameList.pm' libscan(lib/Audio/TagLib/ID3v2/FrameListMap.pm) => 'blib\lib\Audio\Tag +Lib\ID3v2\FrameListMap.pm' libscan(lib/Audio/TagLib/ID3v2/Header.pm) => 'blib\lib\Audio\TagLib\ID +3v2\Header.pm' libscan(lib/Audio/TagLib/ID3v2/RelativeVolumeFrame.pm) => 'blib\lib\Au +dio\TagLib\ID3v2\RelativeVolumeFrame.pm' libscan(lib/Audio/TagLib/ID3v2/SynchData.pm) => 'blib\lib\Audio\TagLib +\ID3v2\SynchData.pm' libscan(lib/Audio/TagLib/ID3v2/Tag.pm) => 'blib\lib\Audio\TagLib\ID3v2 +\Tag.pm' libscan(lib/Audio/TagLib/ID3v2/TextIdentificationFrame.pm) => 'blib\li +b\Audio\TagLib\ID3v2\TextIdentificationFrame.pm' libscan(lib/Audio/TagLib/ID3v2/UniqueFileIdentifierFrame.pm) => 'blib\ +lib\Audio\TagLib\ID3v2\UniqueFileIdentifierFrame.pm' libscan(lib/Audio/TagLib/ID3v2/UnknownFrame.pm) => 'blib\lib\Audio\Tag +Lib\ID3v2\UnknownFrame.pm' libscan(lib/Audio/TagLib/ID3v2/UserTextIdentificationFrame.pm) => 'bli +b\lib\Audio\TagLib\ID3v2\UserTextIdentificationFrame.pm' libscan(lib/Audio/TagLib/ID3v2/FrameList/Iterator.pm) => 'blib\lib\Aud +io\TagLib\ID3v2\FrameList\Iterator.pm' libscan(lib/Audio/TagLib/ID3v2/FrameListMap/Iterator.pm) => 'blib\lib\ +Audio\TagLib\ID3v2\FrameListMap\Iterator.pm' libscan(lib/Audio/TagLib/ID3v2/RelativeVolumeFrame/PeakVolume.pm) => ' +blib\lib\Audio\TagLib\ID3v2\RelativeVolumeFrame\PeakVolume.pm' libscan(lib/Audio/TagLib/MPC/File.pm) => 'blib\lib\Audio\TagLib\MPC\Fi +le.pm' libscan(lib/Audio/TagLib/MPC/Properties.pm) => 'blib\lib\Audio\TagLib\ +MPC\Properties.pm' libscan(lib/Audio/TagLib/MPEG/File.pm) => 'blib\lib\Audio\TagLib\MPEG\ +File.pm' libscan(lib/Audio/TagLib/MPEG/Header.pm) => 'blib\lib\Audio\TagLib\MPE +G\Header.pm' libscan(lib/Audio/TagLib/MPEG/Properties.pm) => 'blib\lib\Audio\TagLib +\MPEG\Properties.pm' libscan(lib/Audio/TagLib/MPEG/XingHeader.pm) => 'blib\lib\Audio\TagLib +\MPEG\XingHeader.pm' libscan(lib/Audio/TagLib/Ogg/FieldListMap.pm) => 'blib\lib\Audio\TagLi +b\Ogg\FieldListMap.pm' libscan(lib/Audio/TagLib/Ogg/File.pm) => 'blib\lib\Audio\TagLib\Ogg\Fi +le.pm' libscan(lib/Audio/TagLib/Ogg/Page.pm) => 'blib\lib\Audio\TagLib\Ogg\Pa +ge.pm' libscan(lib/Audio/TagLib/Ogg/PageHeader.pm) => 'blib\lib\Audio\TagLib\ +Ogg\PageHeader.pm' libscan(lib/Audio/TagLib/Ogg/XiphComment.pm) => 'blib\lib\Audio\TagLib +\Ogg\XiphComment.pm' libscan(lib/Audio/TagLib/Ogg/FieldListMap/Iterator.pm) => 'blib\lib\Au +dio\TagLib\Ogg\FieldListMap\Iterator.pm' libscan(lib/Audio/TagLib/Ogg/FLAC/File.pm) => 'blib\lib\Audio\TagLib\O +gg\FLAC\File.pm' libscan(lib/Audio/TagLib/Ogg/Vorbis/File.pm) => 'blib\lib\Audio\TagLib +\Ogg\Vorbis\File.pm' libscan(lib/Audio/TagLib/Ogg/Vorbis/Properties.pm) => 'blib\lib\Audio\ +TagLib\Ogg\Vorbis\Properties.pm' libscan(lib/Audio/TagLib/String/Iterator.pm) => 'blib\lib\Audio\TagLib +\String\Iterator.pm' libscan(lib/Audio/TagLib/Vorbis/File.pm) => 'blib\lib\Audio\TagLib\Vor +bis\File.pm' libscan(lib/Audio/TagLib/Vorbis/Properties.pm) => 'blib\lib\Audio\TagL +ib\Vorbis\Properties.pm' Looking for perl 5 by these names: C:\strawberry\perl\bin\perl.exe perl.exe perl5.exe perl5.14.2.exe mini +perl.exe in these dirs: . C:\Windows\system32 C:\Windows C:\Windows\System32\Wbem C:\Program F +iles\Common Files\Autodesk Shared\ C:\Program Files\QuickTime\QTSyste +m\ C:\Strawberry\c\bin C:\Strawberry\perl\site\bin C:\Strawberry\perl +\bin C:\Libraries\TagLib\Bin C:\Program files\CMake 2.8\Bin C:\Strawb +erry\perl\bin Checking C:\strawberry\perl\bin\perl.exe Executing C:\strawberry\perl\bin\perl.exe Using PERL=C:\strawberry\perl\bin\perl.exe Potential libraries are '-LC:/Libraries/taglib/lib -ltag -liconv -lmol +dname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -l +shell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm - +lversion -lodbc32 -lodbccp32 -lcomctl32': '-ltag' not found as 'libtag.a' '-ltag' found as 'C:/Libraries/taglib/lib\libtag.a' '-liconv' not found as 'libiconv.a' '-liconv' not found as 'C:/Libraries/taglib/lib\libiconv.a' '-liconv' found as 'C:/Strawberry/c/lib\libiconv.a' '-lmoldname' not found as 'libmoldname.a' '-lmoldname' not found as 'C:/Libraries/taglib/lib\libmoldname.a' '-lmoldname' not found as 'C:/Strawberry/c/lib\libmoldname.a' '-lmoldname' found as 'C:/Strawberry/c/i686-w64-mingw32/lib\libmoldnam +e.a' '-lkernel32' not found as 'libkernel32.a' '-lkernel32' not found as 'C:/Libraries/taglib/lib\libkernel32.a' '-lkernel32' not found as 'C:/Strawberry/c/lib\libkernel32.a' '-lkernel32' found as 'C:/Strawberry/c/i686-w64-mingw32/lib\libkernel3 +2.a' '-luser32' not found as 'libuser32.a' '-luser32' not found as 'C:/Libraries/taglib/lib\libuser32.a' '-luser32' not found as 'C:/Strawberry/c/lib\libuser32.a' '-luser32' found as 'C:/Strawberry/c/i686-w64-mingw32/lib\libuser32.a' '-lgdi32' not found as 'libgdi32.a' '-lgdi32' not found as 'C:/Libraries/taglib/lib\libgdi32.a' '-lgdi32' not found as 'C:/Strawberry/c/lib\libgdi32.a' '-lgdi32' found as 'C:/Strawberry/c/i686-w64-mingw32/lib\libgdi32.a' '-lwinspool' not found as 'libwinspool.a' '-lwinspool' not found as 'C:/Libraries/taglib/lib\libwinspool.a' '-lwinspool' not found as 'C:/Strawberry/c/lib\libwinspool.a' '-lwinspool' found as 'C:/Strawberry/c/i686-w64-mingw32/lib\libwinspoo +l.a' '-lcomdlg32' not found as 'libcomdlg32.a' '-lcomdlg32' not found as 'C:/Libraries/taglib/lib\libcomdlg32.a' '-lcomdlg32' not found as 'C:/Strawberry/c/lib\libcomdlg32.a' '-lcomdlg32' found as 'C:/Strawberry/c/i686-w64-mingw32/lib\libcomdlg3 +2.a' '-ladvapi32' not found as 'libadvapi32.a' '-ladvapi32' not found as 'C:/Libraries/taglib/lib\libadvapi32.a' '-ladvapi32' not found as 'C:/Strawberry/c/lib\libadvapi32.a' '-ladvapi32' found as 'C:/Strawberry/c/i686-w64-mingw32/lib\libadvapi3 +2.a' '-lshell32' not found as 'libshell32.a' '-lshell32' not found as 'C:/Libraries/taglib/lib\libshell32.a' '-lshell32' not found as 'C:/Strawberry/c/lib\libshell32.a' '-lshell32' found as 'C:/Strawberry/c/i686-w64-mingw32/lib\libshell32. +a' '-lole32' not found as 'libole32.a' '-lole32' not found as 'C:/Libraries/taglib/lib\libole32.a' '-lole32' not found as 'C:/Strawberry/c/lib\libole32.a' '-lole32' found as 'C:/Strawberry/c/i686-w64-mingw32/lib\libole32.a' '-loleaut32' not found as 'liboleaut32.a' '-loleaut32' not found as 'C:/Libraries/taglib/lib\liboleaut32.a' '-loleaut32' not found as 'C:/Strawberry/c/lib\liboleaut32.a' '-loleaut32' found as 'C:/Strawberry/c/i686-w64-mingw32/lib\liboleaut3 +2.a' '-lnetapi32' not found as 'libnetapi32.a' '-lnetapi32' not found as 'C:/Libraries/taglib/lib\libnetapi32.a' '-lnetapi32' not found as 'C:/Strawberry/c/lib\libnetapi32.a' '-lnetapi32' found as 'C:/Strawberry/c/i686-w64-mingw32/lib\libnetapi3 +2.a' '-luuid' not found as 'libuuid.a' '-luuid' not found as 'C:/Libraries/taglib/lib\libuuid.a' '-luuid' not found as 'C:/Strawberry/c/lib\libuuid.a' '-luuid' found as 'C:/Strawberry/c/i686-w64-mingw32/lib\libuuid.a' '-lws2_32' not found as 'libws2_32.a' '-lws2_32' not found as 'C:/Libraries/taglib/lib\libws2_32.a' '-lws2_32' not found as 'C:/Strawberry/c/lib\libws2_32.a' '-lws2_32' found as 'C:/Strawberry/c/i686-w64-mingw32/lib\libws2_32.a' '-lmpr' not found as 'libmpr.a' '-lmpr' not found as 'C:/Libraries/taglib/lib\libmpr.a' '-lmpr' not found as 'C:/Strawberry/c/lib\libmpr.a' '-lmpr' found as 'C:/Strawberry/c/i686-w64-mingw32/lib\libmpr.a' '-lwinmm' not found as 'libwinmm.a' '-lwinmm' not found as 'C:/Libraries/taglib/lib\libwinmm.a' '-lwinmm' not found as 'C:/Strawberry/c/lib\libwinmm.a' '-lwinmm' found as 'C:/Strawberry/c/i686-w64-mingw32/lib\libwinmm.a' '-lversion' not found as 'libversion.a' '-lversion' not found as 'C:/Libraries/taglib/lib\libversion.a' '-lversion' not found as 'C:/Strawberry/c/lib\libversion.a' '-lversion' found as 'C:/Strawberry/c/i686-w64-mingw32/lib\libversion. +a' '-lodbc32' not found as 'libodbc32.a' '-lodbc32' not found as 'C:/Libraries/taglib/lib\libodbc32.a' '-lodbc32' not found as 'C:/Strawberry/c/lib\libodbc32.a' '-lodbc32' found as 'C:/Strawberry/c/i686-w64-mingw32/lib\libodbc32.a' '-lodbccp32' not found as 'libodbccp32.a' '-lodbccp32' not found as 'C:/Libraries/taglib/lib\libodbccp32.a' '-lodbccp32' not found as 'C:/Strawberry/c/lib\libodbccp32.a' '-lodbccp32' found as 'C:/Strawberry/c/i686-w64-mingw32/lib\libodbccp3 +2.a' '-lcomctl32' not found as 'libcomctl32.a' '-lcomctl32' not found as 'C:/Libraries/taglib/lib\libcomctl32.a' '-lcomctl32' not found as 'C:/Strawberry/c/lib\libcomctl32.a' '-lcomctl32' found as 'C:/Strawberry/c/i686-w64-mingw32/lib\libcomctl3 +2.a' Result: C:\Libraries\taglib\lib\libtag.a C:\Strawberry\c\lib\libiconv. +a C:\Strawberry\c\i686-w64-mingw32\lib\libmoldname.a C:\Strawberry\c\ +i686-w64-mingw32\lib\libkernel32.a C:\Strawberry\c\i686-w64-mingw32\l +ib\libuser32.a C:\Strawberry\c\i686-w64-mingw32\lib\libgdi32.a C:\Str +awberry\c\i686-w64 -mingw32\lib\libwinspool.a C:\Strawberry\c\i686-w64-mingw32\lib\libcom +dlg32.a C:\Strawberry\c\i686-w64-mingw32\lib\libadvapi32.a C:\Strawbe +rry\c\i686-w64-mingw32\lib\libshell32.a C:\Strawberry\c\i686-w64-ming +w32\lib\libole32.a C:\Strawberry\c\i686-w64-mingw32\lib\liboleaut32.a + C:\Strawberry\c\i 686-w64-mingw32\lib\libnetapi32.a C:\Strawberry\c\i686-w64-mingw32\lib +\libuuid.a C:\Strawberry\c\i686-w64-mingw32\lib\libws2_32.a C:\Strawb +erry\c\i686-w64-mingw32\lib\libmpr.a C:\Strawberry\c\i686-w64-mingw32 +\lib\libwinmm.a C:\Strawberry\c\i686-w64-mingw32\lib\libversion.a C:\ +Strawberry\c\i686- w64-mingw32\lib\libodbc32.a C:\Strawberry\c\i686-w64-mingw32\lib\libod +bccp32.a C:\Strawberry\c\i686-w64-mingw32\lib\libcomctl32.a Processing Makefile 'post_initialize' section Processing Makefile 'const_config' section Processing Makefile 'constants' section Processing Makefile 'platform_constants' section Processing Makefile 'tool_autosplit' section Processing Makefile 'tool_xsubpp' section Processing Makefile 'tools_other' section Processing Makefile 'makemakerdflt' section Processing Makefile 'dist' section Processing Makefile 'macro' section Processing Makefile 'depend' section Processing Makefile 'cflags' section Processing Makefile 'const_loadlibs' section Processing Makefile 'const_cccmd' section Processing Makefile 'post_constants' section Processing Makefile 'pasthru' section Processing Makefile 'special_targets' section Processing Makefile 'c_o' section Processing Makefile 'xs_c' section Processing Makefile 'xs_o' section Processing Makefile 'top_targets' section Processing Makefile 'blibdirs' section Processing Makefile 'linkext' section Processing Makefile 'dlsyms' section Processing Makefile 'dynamic' section Processing Makefile 'dynamic_bs' section Processing Makefile 'dynamic_lib' section Processing Makefile 'static' section Processing Makefile 'static_lib' section Processing Makefile 'manifypods' section Processing Makefile 'processPL' section Processing Makefile 'installbin' section Processing Makefile 'subdirs' section Processing Makefile 'clean_subdirs' section Processing Makefile 'clean' section Processing Makefile 'realclean_subdirs' section Processing Makefile 'realclean' section Processing Makefile 'metafile' section Processing Makefile 'signature' section Processing Makefile 'dist_basics' section Processing Makefile 'dist_core' section Processing Makefile 'distdir' section Processing Makefile 'dist_test' section Processing Makefile 'dist_ci' section Processing Makefile 'distmeta' section Processing Makefile 'distsignature' section Processing Makefile 'install' section Processing Makefile 'force' section Processing Makefile 'perldepend' section Processing Makefile 'makefile' section Processing Makefile 'staticmake' section Processing Makefile 'test' section Processing Makefile 'ppd' section Processing Makefile 'pm_to_blib' section Processing Makefile 'selfdocument' section Processing Makefile 'postamble' section Writing Makefile for Audio::TagLib Writing MYMETA.yml and MYMETA.json C:\Strawberry\cpan\build\Audio-TagLib-1.61-EZ0Hnb>
    Then: "dmake -v"
    C:\Strawberry\cpan\build\Audio-TagLib-1.61-EZ0Hnb>dmake -v dmake: C:\Strawberry\c\bin\startup\config.mk: line 1: Warning: -- M +acro `OS' redefined after use dmake: Openning [C:\Strawberry\c\bin\startup\startup.mk] for read (su +ccess) dmake: Openning [C:\Strawberry\c\bin\startup\config.mk] for read (suc +cess) dmake: Parsing include file [C:\Strawberry\c\bin\startup\config.mk]. dmake: Closing [C:\Strawberry\c\bin\startup\config.mk] dmake: Openning [C:\Strawberry\c\bin\startup\local.mk] for read (succ +ess) dmake: Parsing include file [C:\Strawberry\c\bin\startup\local.mk]. dmake: Closing [C:\Strawberry\c\bin\startup\local.mk] dmake: Openning [C:\Strawberry\c\dmake: C:\Strawberry\c\bin\startup\ +startup.mk: line 142: Warning: -- More than one prerequisite for %-target. Use :| ruleop or indirect prerequisites. dmake: C:\Strawberry\c\bin\startup\startup.mk: line 146: Warning: - +- More than one prerequisite for %-target. Use :| ruleop or indirect prerequisites. bin\startup\winnt\macros.mk] for read (success) dmake: Parsing include file [C:\Strawberry\c\bin\startup\winnt\macros +.mk]. dmake: Openning [C:\Strawberry\c\bin\startup\winnt\mingw\macros.mk] f +or read (success) dmake: Parsing include file [C:\Strawberry\c\bin\startup\winnt\mingw\ +macros.mk]. dmake: Closing [C:\Strawberry\c\bin\startup\winnt\mingw\macros.mk] dmake: Closing [C:\Strawberry\c\bin\startup\winnt\macros.mk] dmake: Openning [C:\Strawberry\c\bin\startup\winnt\recipes.mk] for re +ad (success) dmake: Parsing include file [C:\Strawberry\c\bin\startup\winnt\recipe +s.mk]. dmake: Openning [C:\Strawberry\c\bin\startup\winnt\mingw\recipes.mk] +for read (fail) dmake: Include file [C:\Strawberry\c\bin\startup\winnt\mingw\recipes. +mk] was not found. dmake: Closing [C:\Strawberry\c\bin\startup\winnt\recipes.mk] dmake: Openning [project.mk] for read (fail) dmake: Include file [project.mk] was not found. dmake: Closing [C:\Strawberry\c\bin\startup\startup.mk] dmake: Openning [makefile.mk] for read (fail) dmadmake: makefile: line 498: Warning: -- The .SUFFIXES target has +no special meaning and is deprecated. ke: Infering prerequisite(s) and recipe for [makefile.mk] dmake: Time stamp of [makefile.mk] is 0 dmake: Openning [makefile] for read (success) dmake: Closing [makefile] Checking prerequisite [.INIT] Checking prerequisite [__.NULLPRQ] dmake: >>>> Making [__.NULLPRQ] dmake: Updating [__.NULLPRQ], (1 > 0) dmake: <<<< Set [__.NULLPRQ] time stamp to 1345355268 dmake: >>>> Making [.INIT] dmake: Updating [.INIT], (1345355268 > 0) dmake: <<<< Set [.INIT] time stamp to 1345355268 Checking prerequisite [.TARGETS] Checking prerequisite [makemakerdflt] dmake: Time stamp of [makemakerdflt] is 0 Checking prerequisite [all] dmake: Infering prerequisite(s) and recipe for [all] Checking prerequisite [all] Checking prerequisite [pure_all] dmake: Infering prerequisite(s) and recipe for [pure_all] dmake: Time stamp of [pure_all] is 0 Checking prerequisite [pure_all] Checking prerequisite [config] dmake: Infering prerequisite(s) and recipe for [config] Checking prerequisite [config] Checking prerequisite [Makefile] dmake: Time stamp of [Makefile] is 1345355220 Checking prerequisite [Makefile.PL] dmake: Infering prerequisite(s) and recipe for [Makefile.PL] dmake: Time stamp of [Makefile.PL] is 1345354982 dmake: >>>> Making [Makefile.PL] dmake: Up to date [Makefile.PL], prq time = 1 , target time = 1345354 +982) Checking prerequisite [C:\Strawberry\perl\lib\Config.pm] dmake: Infering prerequisite(s) and recipe for [C:\Strawberry\perl\li +b\Config.pm] dmake: Time stamp of [C:\Strawberry\perl\lib\Config.pm] is 1345166087 dmake: >>>> Making [C:\Strawberry\perl\lib\Config.pm] dmake: Up to date [C:\Strawberry\perl\lib\Config.pm], prq time = 1 , +target time = 1345166087) Checking prerequisite [C:\Strawberry\perl\lib\CORE\config.h] dmake: Infering prerequisite(s) and recipe for [C:\Strawberry\perl\li +b\CORE\config.h] dmake: Time stamp of [C:\Strawberry\perl\lib\CORE\config.h] is 134516 +6087 dmake: >>>> Making [C:\Strawberry\perl\lib\CORE\config.h] dmake: Up to date [C:\Strawberry\perl\lib\CORE\config.h], prq time = +1 , target time = 1345166087) dmake: >>>> Making [Makefile] dmake: Up to date [Makefile], prq time = 1345354982 , target time = 1 +345355220) Checking prerequisite [blibdirs] Checking prerequisite [blib\lib\Audio\.exists] dmake: Infering prerequisite(s) and recipe for [blib\lib\Audio\.exist +s] dmake: Time stamp of [blib\lib\Audio\.exists] is 0 Checking prerequisite [blib\lib\Audio\.exists] Checking prerequisite [Makefile.PL] dmake: >>>> Making [blib\lib\Audio\.exists::{1}] dmake: Updating [blib\lib\Audio\.exists], (1345354982 > 0) C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e mkpath -- blib\ +lib\Audio C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod -- 755 bl +ib\lib\Audio C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e touch -- blib\l +ib\Audio\.exists dmake: <<<< Set [blib\lib\Audio\.exists] time stamp to 1345355269 dmake: >>>> Making (::-"master" target) [blib\lib\Audio\.exists] dmake: Up to date [blib\lib\Audio\.exists], prq time = 1345355269 , t +arget time = 1345355269) Checking prerequisite [blib\arch\.exists] dmake: Infering prerequisite(s) and recipe for [blib\arch\.exists] dmake: Time stamp of [blib\arch\.exists] is 0 Checking prerequisite [blib\arch\.exists] Checking prerequisite [Makefile.PL] dmake: >>>> Making [blib\arch\.exists::{1}] dmake: Updating [blib\arch\.exists], (1345354982 > 0) C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e mkpath -- blib\ +arch C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod -- 755 bl +ib\arch C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e touch -- blib\a +rch\.exists dmake: <<<< Set [blib\arch\.exists] time stamp to 1345355269 dmake: >>>> Making (::-"master" target) [blib\arch\.exists] dmake: Up to date [blib\arch\.exists], prq time = 1345355269 , target + time = 1345355269) Checking prerequisite [blib\lib\auto\Audio\TagLib\.exists] dmake: Infering prerequisite(s) and recipe for [blib\lib\auto\Audio\T +agLib\.exists] dmake: Time stamp of [blib\lib\auto\Audio\TagLib\.exists] is 0 Checking prerequisite [blib\lib\auto\Audio\TagLib\.exists] Checking prerequisite [Makefile.PL] dmake: >>>> Making [blib\lib\auto\Audio\TagLib\.exists::{1}] dmake: Updating [blib\lib\auto\Audio\TagLib\.exists], (1345354982 > 0 +) C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e mkpath -- blib\ +lib\auto\Audio\TagLib C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod -- 755 bl +ib\lib\auto\Audio\TagLib C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e touch -- blib\l +ib\auto\Audio\TagLib\.exists dmake: <<<< Set [blib\lib\auto\Audio\TagLib\.exists] time stamp to 13 +45355270 dmake: >>>> Making (::-"master" target) [blib\lib\auto\Audio\TagLib\. +exists] dmake: Up to date [blib\lib\auto\Audio\TagLib\.exists], prq time = 13 +45355270 , target time = 1345355270) Checking prerequisite [blib\arch\auto\Audio\TagLib\.exists] dmake: Infering prerequisite(s) and recipe for [blib\arch\auto\Audio\ +TagLib\.exists] dmake: Time stamp of [blib\arch\auto\Audio\TagLib\.exists] is 0 Checking prerequisite [blib\arch\auto\Audio\TagLib\.exists] Checking prerequisite [Makefile.PL] dmake: >>>> Making [blib\arch\auto\Audio\TagLib\.exists::{1}] dmake: Updating [blib\arch\auto\Audio\TagLib\.exists], (1345354982 > +0) C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e mkpath -- blib\ +arch\auto\Audio\TagLib C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod -- 755 bl +ib\arch\auto\Audio\TagLib C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e touch -- blib\a +rch\auto\Audio\TagLib\.exists dmake: <<<< Set [blib\arch\auto\Audio\TagLib\.exists] time stamp to 1 +345355270 dmake: >>>> Making (::-"master" target) [blib\arch\auto\Audio\TagLib\ +.exists] dmake: Up to date [blib\arch\auto\Audio\TagLib\.exists], prq time = 1 +345355270 , target time = 1345355270) Checking prerequisite [blib\bin\.exists] dmake: Infering prerequisite(s) and recipe for [blib\bin\.exists] dmake: Time stamp of [blib\bin\.exists] is 0 Checking prerequisite [blib\bin\.exists] Checking prerequisite [Makefile.PL] dmake: >>>> Making [blib\bin\.exists::{1}] dmake: Updating [blib\bin\.exists], (1345354982 > 0) C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e mkpath -- blib\ +bin C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod -- 755 bl +ib\bin C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e touch -- blib\b +in\.exists dmake: <<<< Set [blib\bin\.exists] time stamp to 1345355271 dmake: >>>> Making (::-"master" target) [blib\bin\.exists] dmake: Up to date [blib\bin\.exists], prq time = 1345355271 , target +time = 1345355271) Checking prerequisite [blib\script\.exists] dmake: Infering prerequisite(s) and recipe for [blib\script\.exists] dmake: Time stamp of [blib\script\.exists] is 0 Checking prerequisite [blib\script\.exists] Checking prerequisite [Makefile.PL] dmake: >>>> Making [blib\script\.exists::{1}] dmake: Updating [blib\script\.exists], (1345354982 > 0) C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e mkpath -- blib\ +script C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod -- 755 bl +ib\script C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e touch -- blib\s +cript\.exists dmake: <<<< Set [blib\script\.exists] time stamp to 1345355272 dmake: >>>> Making (::-"master" target) [blib\script\.exists] dmake: Up to date [blib\script\.exists], prq time = 1345355272 , targ +et time = 1345355272) Checking prerequisite [blib\man1\.exists] dmake: Infering prerequisite(s) and recipe for [blib\man1\.exists] dmake: Time stamp of [blib\man1\.exists] is 0 Checking prerequisite [blib\man1\.exists] Checking prerequisite [Makefile.PL] dmake: >>>> Making [blib\man1\.exists::{1}] dmake: Updating [blib\man1\.exists], (1345354982 > 0) C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e mkpath -- blib\ +man1 C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod -- 755 bl +ib\man1 C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e touch -- blib\m +an1\.exists dmake: <<<< Set [blib\man1\.exists] time stamp to 1345355272 dmake: >>>> Making (::-"master" target) [blib\man1\.exists] dmake: Up to date [blib\man1\.exists], prq time = 1345355272 , target + time = 1345355272) Checking prerequisite [blib\man3\.exists] dmake: Infering prerequisite(s) and recipe for [blib\man3\.exists] dmake: Time stamp of [blib\man3\.exists] is 0 Checking prerequisite [blib\man3\.exists] Checking prerequisite [Makefile.PL] dmake: >>>> Making [blib\man3\.exists::{1}] dmake: Updating [blib\man3\.exists], (1345354982 > 0) C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e mkpath -- blib\ +man3 C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod -- 755 bl +ib\man3 C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e touch -- blib\m +an3\.exists dmake: <<<< Set [blib\man3\.exists] time stamp to 1345355273 dmake: >>>> Making (::-"master" target) [blib\man3\.exists] dmake: Up to date [blib\man3\.exists], prq time = 1345355273 , target + time = 1345355273) dmake: >>>> Making [blibdirs] dmake: Updating [blibdirs], (1345355273 > 0) rem dmake: <<<< Set [blibdirs] time stamp to 1345355273 dmake: >>>> Making [config::{1}] dmake: Updating [config], (1345355273 > 0) rem dmake: <<<< Set [config] time stamp to 1345355273 dmake: >>>> Making (::-"master" target) [config] dmake: Up to date [config], prq time = 1345355273 , target time = 134 +5355273) Checking prerequisite [pm_to_blib] dmake: Time stamp of [pm_to_blib] is 0 Checking prerequisite [Makefile] Checking prerequisite [lib\Audio\TagLib.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib.pm] dmake: Time stamp of [lib\Audio\TagLib.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib.pm] dmake: Up to date [lib\Audio\TagLib.pm], prq time = 1 , target time = + 1344805349) Checking prerequisite [lib\Audio\TagLib\APE\Footer.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\APE\ +Footer.pm] dmake: Time stamp of [lib\Audio\TagLib\APE\Footer.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\APE\Footer.pm] dmake: Up to date [lib\Audio\TagLib\APE\Footer.pm], prq time = 1 , ta +rget time = 1344805349) Checking prerequisite [lib\Audio\TagLib\APE\Item.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\APE\ +Item.pm] dmake: Time stamp of [lib\Audio\TagLib\APE\Item.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\APE\Item.pm] dmake: Up to date [lib\Audio\TagLib\APE\Item.pm], prq time = 1 , targ +et time = 1344805349) Checking prerequisite [lib\Audio\TagLib\APE\ItemListMap.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\APE\ +ItemListMap.pm] dmake: Time stamp of [lib\Audio\TagLib\APE\ItemListMap.pm] is 1344805 +349 dmake: >>>> Making [lib\Audio\TagLib\APE\ItemListMap.pm] dmake: Up to date [lib\Audio\TagLib\APE\ItemListMap.pm], prq time = 1 + , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\APE\ItemListMap\Iterator.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\APE\ +ItemListMap\Iterator.pm] dmake: Time stamp of [lib\Audio\TagLib\APE\ItemListMap\Iterator.pm] i +s 1344805349 dmake: >>>> Making [lib\Audio\TagLib\APE\ItemListMap\Iterator.pm] dmake: Up to date [lib\Audio\TagLib\APE\ItemListMap\Iterator.pm], prq + time = 1 , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\APE\Tag.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\APE\ +Tag.pm] dmake: Time stamp of [lib\Audio\TagLib\APE\Tag.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\APE\Tag.pm] dmake: Up to date [lib\Audio\TagLib\APE\Tag.pm], prq time = 1 , targe +t time = 1344805349) Checking prerequisite [lib\Audio\TagLib\AudioProperties.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\Audi +oProperties.pm] dmake: Time stamp of [lib\Audio\TagLib\AudioProperties.pm] is 1344805 +349 dmake: >>>> Making [lib\Audio\TagLib\AudioProperties.pm] dmake: Up to date [lib\Audio\TagLib\AudioProperties.pm], prq time = 1 + , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ByteVector.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\Byte +Vector.pm] dmake: Time stamp of [lib\Audio\TagLib\ByteVector.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\ByteVector.pm] dmake: Up to date [lib\Audio\TagLib\ByteVector.pm], prq time = 1 , ta +rget time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ByteVector\Iterator.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\Byte +Vector\Iterator.pm] dmake: Time stamp of [lib\Audio\TagLib\ByteVector\Iterator.pm] is 134 +4805349 dmake: >>>> Making [lib\Audio\TagLib\ByteVector\Iterator.pm] dmake: Up to date [lib\Audio\TagLib\ByteVector\Iterator.pm], prq time + = 1 , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ByteVectorList.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\Byte +VectorList.pm] dmake: Time stamp of [lib\Audio\TagLib\ByteVectorList.pm] is 13448053 +49 dmake: >>>> Making [lib\Audio\TagLib\ByteVectorList.pm] dmake: Up to date [lib\Audio\TagLib\ByteVectorList.pm], prq time = 1 +, target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\FLAC\File.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\FLAC +\File.pm] dmake: Time stamp of [lib\Audio\TagLib\FLAC\File.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\FLAC\File.pm] dmake: Up to date [lib\Audio\TagLib\FLAC\File.pm], prq time = 1 , tar +get time = 1344805349) Checking prerequisite [lib\Audio\TagLib\FLAC\Properties.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\FLAC +\Properties.pm] dmake: Time stamp of [lib\Audio\TagLib\FLAC\Properties.pm] is 1344805 +349 dmake: >>>> Making [lib\Audio\TagLib\FLAC\Properties.pm] dmake: Up to date [lib\Audio\TagLib\FLAC\Properties.pm], prq time = 1 + , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\File.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\File +.pm] dmake: Time stamp of [lib\Audio\TagLib\File.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\File.pm] dmake: Up to date [lib\Audio\TagLib\File.pm], prq time = 1 , target t +ime = 1344805349) Checking prerequisite [lib\Audio\TagLib\FileRef.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\File +Ref.pm] dmake: Time stamp of [lib\Audio\TagLib\FileRef.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\FileRef.pm] dmake: Up to date [lib\Audio\TagLib\FileRef.pm], prq time = 1 , targe +t time = 1344805349) Checking prerequisite [lib\Audio\TagLib\FileRef\FileTypeResolver.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\File +Ref\FileTypeResolver.pm] dmake: Time stamp of [lib\Audio\TagLib\FileRef\FileTypeResolver.pm] i +s 1344805349 dmake: >>>> Making [lib\Audio\TagLib\FileRef\FileTypeResolver.pm] dmake: Up to date [lib\Audio\TagLib\FileRef\FileTypeResolver.pm], prq + time = 1 , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v1.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +1.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v1.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\ID3v1.pm] dmake: Up to date [lib\Audio\TagLib\ID3v1.pm], prq time = 1 , target +time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v1\GenreMap.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +1\GenreMap.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v1\GenreMap.pm] is 13448053 +49 dmake: >>>> Making [lib\Audio\TagLib\ID3v1\GenreMap.pm] dmake: Up to date [lib\Audio\TagLib\ID3v1\GenreMap.pm], prq time = 1 +, target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v1\GenreMap\Iterator.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +1\GenreMap\Iterator.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v1\GenreMap\Iterator.pm] is + 1344805349 dmake: >>>> Making [lib\Audio\TagLib\ID3v1\GenreMap\Iterator.pm] dmake: Up to date [lib\Audio\TagLib\ID3v1\GenreMap\Iterator.pm], prq +time = 1 , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v1\StringHandler.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +1\StringHandler.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v1\StringHandler.pm] is 134 +4805349 dmake: >>>> Making [lib\Audio\TagLib\ID3v1\StringHandler.pm] dmake: Up to date [lib\Audio\TagLib\ID3v1\StringHandler.pm], prq time + = 1 , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v1\Tag.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +1\Tag.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v1\Tag.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\ID3v1\Tag.pm] dmake: Up to date [lib\Audio\TagLib\ID3v1\Tag.pm], prq time = 1 , tar +get time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v2.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +2.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v2.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\ID3v2.pm] dmake: Up to date [lib\Audio\TagLib\ID3v2.pm], prq time = 1 , target +time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v2\AttachedPictureFrame.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +2\AttachedPictureFrame.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v2\AttachedPictureFrame.pm] + is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\ID3v2\AttachedPictureFrame.pm] dmake: Up to date [lib\Audio\TagLib\ID3v2\AttachedPictureFrame.pm], p +rq time = 1 , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v2\CommentsFrame.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +2\CommentsFrame.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v2\CommentsFrame.pm] is 134 +4805349 dmake: >>>> Making [lib\Audio\TagLib\ID3v2\CommentsFrame.pm] dmake: Up to date [lib\Audio\TagLib\ID3v2\CommentsFrame.pm], prq time + = 1 , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v2\ExtendedHeader.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +2\ExtendedHeader.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v2\ExtendedHeader.pm] is 13 +44805349 dmake: >>>> Making [lib\Audio\TagLib\ID3v2\ExtendedHeader.pm] dmake: Up to date [lib\Audio\TagLib\ID3v2\ExtendedHeader.pm], prq tim +e = 1 , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v2\Footer.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +2\Footer.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v2\Footer.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\ID3v2\Footer.pm] dmake: Up to date [lib\Audio\TagLib\ID3v2\Footer.pm], prq time = 1 , +target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v2\Frame.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +2\Frame.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v2\Frame.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\ID3v2\Frame.pm] dmake: Up to date [lib\Audio\TagLib\ID3v2\Frame.pm], prq time = 1 , t +arget time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v2\FrameFactory.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +2\FrameFactory.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v2\FrameFactory.pm] is 1344 +805349 dmake: >>>> Making [lib\Audio\TagLib\ID3v2\FrameFactory.pm] dmake: Up to date [lib\Audio\TagLib\ID3v2\FrameFactory.pm], prq time += 1 , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v2\FrameList.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +2\FrameList.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v2\FrameList.pm] is 1344805 +349 dmake: >>>> Making [lib\Audio\TagLib\ID3v2\FrameList.pm] dmake: Up to date [lib\Audio\TagLib\ID3v2\FrameList.pm], prq time = 1 + , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v2\FrameList\Iterator.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +2\FrameList\Iterator.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v2\FrameList\Iterator.pm] i +s 1344805349 dmake: >>>> Making [lib\Audio\TagLib\ID3v2\FrameList\Iterator.pm] dmake: Up to date [lib\Audio\TagLib\ID3v2\FrameList\Iterator.pm], prq + time = 1 , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v2\FrameListMap.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +2\FrameListMap.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v2\FrameListMap.pm] is 1344 +805349 dmake: >>>> Making [lib\Audio\TagLib\ID3v2\FrameListMap.pm] dmake: Up to date [lib\Audio\TagLib\ID3v2\FrameListMap.pm], prq time += 1 , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v2\FrameListMap\Iterator.pm +] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +2\FrameListMap\Iterator.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v2\FrameListMap\Iterator.pm +] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\ID3v2\FrameListMap\Iterator.pm] dmake: Up to date [lib\Audio\TagLib\ID3v2\FrameListMap\Iterator.pm], +prq time = 1 , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v2\Header.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +2\Header.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v2\Header.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\ID3v2\Header.pm] dmake: Up to date [lib\Audio\TagLib\ID3v2\Header.pm], prq time = 1 , +target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v2\RelativeVolumeFrame.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +2\RelativeVolumeFrame.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v2\RelativeVolumeFrame.pm] +is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\ID3v2\RelativeVolumeFrame.pm] dmake: Up to date [lib\Audio\TagLib\ID3v2\RelativeVolumeFrame.pm], pr +q time = 1 , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v2\RelativeVolumeFrame\Peak +Volume.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +2\RelativeVolumeFrame\PeakVolume.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v2\RelativeVolumeFrame\Peak +Volume.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\ID3v2\RelativeVolumeFrame\PeakVo +lume.pm] dmake: Up to date [lib\Audio\TagLib\ID3v2\RelativeVolumeFrame\PeakVol +ume.pm], prq time = 1 , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v2\SynchData.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +2\SynchData.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v2\SynchData.pm] is 1344805 +349 dmake: >>>> Making [lib\Audio\TagLib\ID3v2\SynchData.pm] dmake: Up to date [lib\Audio\TagLib\ID3v2\SynchData.pm], prq time = 1 + , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v2\Tag.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +2\Tag.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v2\Tag.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\ID3v2\Tag.pm] dmake: Up to date [lib\Audio\TagLib\ID3v2\Tag.pm], prq time = 1 , tar +get time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v2\TextIdentificationFrame. +pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +2\TextIdentificationFrame.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v2\TextIdentificationFrame. +pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\ID3v2\TextIdentificationFrame.pm +] dmake: Up to date [lib\Audio\TagLib\ID3v2\TextIdentificationFrame.pm] +, prq time = 1 , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v2\UniqueFileIdentifierFram +e.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +2\UniqueFileIdentifierFrame.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v2\UniqueFileIdentifierFram +e.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\ID3v2\UniqueFileIdentifierFrame. +pm] dmake: Up to date [lib\Audio\TagLib\ID3v2\UniqueFileIdentifierFrame.p +m], prq time = 1 , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v2\UnknownFrame.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +2\UnknownFrame.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v2\UnknownFrame.pm] is 1344 +805349 dmake: >>>> Making [lib\Audio\TagLib\ID3v2\UnknownFrame.pm] dmake: Up to date [lib\Audio\TagLib\ID3v2\UnknownFrame.pm], prq time += 1 , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\ID3v2\UserTextIdentificationFr +ame.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\ID3v +2\UserTextIdentificationFrame.pm] dmake: Time stamp of [lib\Audio\TagLib\ID3v2\UserTextIdentificationFr +ame.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\ID3v2\UserTextIdentificationFram +e.pm] dmake: Up to date [lib\Audio\TagLib\ID3v2\UserTextIdentificationFrame +.pm], prq time = 1 , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\MPC\File.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\MPC\ +File.pm] dmake: Time stamp of [lib\Audio\TagLib\MPC\File.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\MPC\File.pm] dmake: Up to date [lib\Audio\TagLib\MPC\File.pm], prq time = 1 , targ +et time = 1344805349) Checking prerequisite [lib\Audio\TagLib\MPC\Properties.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\MPC\ +Properties.pm] dmake: Time stamp of [lib\Audio\TagLib\MPC\Properties.pm] is 13448053 +49 dmake: >>>> Making [lib\Audio\TagLib\MPC\Properties.pm] dmake: Up to date [lib\Audio\TagLib\MPC\Properties.pm], prq time = 1 +, target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\MPEG\File.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\MPEG +\File.pm] dmake: Time stamp of [lib\Audio\TagLib\MPEG\File.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\MPEG\File.pm] dmake: Up to date [lib\Audio\TagLib\MPEG\File.pm], prq time = 1 , tar +get time = 1344805349) Checking prerequisite [lib\Audio\TagLib\MPEG\Header.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\MPEG +\Header.pm] dmake: Time stamp of [lib\Audio\TagLib\MPEG\Header.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\MPEG\Header.pm] dmake: Up to date [lib\Audio\TagLib\MPEG\Header.pm], prq time = 1 , t +arget time = 1344805349) Checking prerequisite [lib\Audio\TagLib\MPEG\Properties.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\MPEG +\Properties.pm] dmake: Time stamp of [lib\Audio\TagLib\MPEG\Properties.pm] is 1344805 +349 dmake: >>>> Making [lib\Audio\TagLib\MPEG\Properties.pm] dmake: Up to date [lib\Audio\TagLib\MPEG\Properties.pm], prq time = 1 + , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\MPEG\XingHeader.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\MPEG +\XingHeader.pm] dmake: Time stamp of [lib\Audio\TagLib\MPEG\XingHeader.pm] is 1344805 +349 dmake: >>>> Making [lib\Audio\TagLib\MPEG\XingHeader.pm] dmake: Up to date [lib\Audio\TagLib\MPEG\XingHeader.pm], prq time = 1 + , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\Ogg\FLAC\File.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\Ogg\ +FLAC\File.pm] dmake: Time stamp of [lib\Audio\TagLib\Ogg\FLAC\File.pm] is 134480534 +9 dmake: >>>> Making [lib\Audio\TagLib\Ogg\FLAC\File.pm] dmake: Up to date [lib\Audio\TagLib\Ogg\FLAC\File.pm], prq time = 1 , + target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\Ogg\FieldListMap.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\Ogg\ +FieldListMap.pm] dmake: Time stamp of [lib\Audio\TagLib\Ogg\FieldListMap.pm] is 134480 +5349 dmake: >>>> Making [lib\Audio\TagLib\Ogg\FieldListMap.pm] dmake: Up to date [lib\Audio\TagLib\Ogg\FieldListMap.pm], prq time = +1 , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\Ogg\FieldListMap\Iterator.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\Ogg\ +FieldListMap\Iterator.pm] dmake: Time stamp of [lib\Audio\TagLib\Ogg\FieldListMap\Iterator.pm] +is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\Ogg\FieldListMap\Iterator.pm] dmake: Up to date [lib\Audio\TagLib\Ogg\FieldListMap\Iterator.pm], pr +q time = 1 , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\Ogg\File.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\Ogg\ +File.pm] dmake: Time stamp of [lib\Audio\TagLib\Ogg\File.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\Ogg\File.pm] dmake: Up to date [lib\Audio\TagLib\Ogg\File.pm], prq time = 1 , targ +et time = 1344805349) Checking prerequisite [lib\Audio\TagLib\Ogg\Page.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\Ogg\ +Page.pm] dmake: Time stamp of [lib\Audio\TagLib\Ogg\Page.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\Ogg\Page.pm] dmake: Up to date [lib\Audio\TagLib\Ogg\Page.pm], prq time = 1 , targ +et time = 1344805349) Checking prerequisite [lib\Audio\TagLib\Ogg\PageHeader.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\Ogg\ +PageHeader.pm] dmake: Time stamp of [lib\Audio\TagLib\Ogg\PageHeader.pm] is 13448053 +49 dmake: >>>> Making [lib\Audio\TagLib\Ogg\PageHeader.pm] dmake: Up to date [lib\Audio\TagLib\Ogg\PageHeader.pm], prq time = 1 +, target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\Ogg\Vorbis\File.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\Ogg\ +Vorbis\File.pm] dmake: Time stamp of [lib\Audio\TagLib\Ogg\Vorbis\File.pm] is 1344805 +349 dmake: >>>> Making [lib\Audio\TagLib\Ogg\Vorbis\File.pm] dmake: Up to date [lib\Audio\TagLib\Ogg\Vorbis\File.pm], prq time = 1 + , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\Ogg\Vorbis\Properties.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\Ogg\ +Vorbis\Properties.pm] dmake: Time stamp of [lib\Audio\TagLib\Ogg\Vorbis\Properties.pm] is 1 +344805349 dmake: >>>> Making [lib\Audio\TagLib\Ogg\Vorbis\Properties.pm] dmake: Up to date [lib\Audio\TagLib\Ogg\Vorbis\Properties.pm], prq ti +me = 1 , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\Ogg\XiphComment.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\Ogg\ +XiphComment.pm] dmake: Time stamp of [lib\Audio\TagLib\Ogg\XiphComment.pm] is 1344805 +349 dmake: >>>> Making [lib\Audio\TagLib\Ogg\XiphComment.pm] dmake: Up to date [lib\Audio\TagLib\Ogg\XiphComment.pm], prq time = 1 + , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\String.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\Stri +ng.pm] dmake: Time stamp of [lib\Audio\TagLib\String.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\String.pm] dmake: Up to date [lib\Audio\TagLib\String.pm], prq time = 1 , target + time = 1344805349) Checking prerequisite [lib\Audio\TagLib\String\Iterator.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\Stri +ng\Iterator.pm] dmake: Time stamp of [lib\Audio\TagLib\String\Iterator.pm] is 1344805 +349 dmake: >>>> Making [lib\Audio\TagLib\String\Iterator.pm] dmake: Up to date [lib\Audio\TagLib\String\Iterator.pm], prq time = 1 + , target time = 1344805349) Checking prerequisite [lib\Audio\TagLib\StringList.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\Stri +ngList.pm] dmake: Time stamp of [lib\Audio\TagLib\StringList.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\StringList.pm] dmake: Up to date [lib\Audio\TagLib\StringList.pm], prq time = 1 , ta +rget time = 1344805349) Checking prerequisite [lib\Audio\TagLib\Tag.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\Tag. +pm] dmake: Time stamp of [lib\Audio\TagLib\Tag.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\Tag.pm] dmake: Up to date [lib\Audio\TagLib\Tag.pm], prq time = 1 , target ti +me = 1344805349) Checking prerequisite [lib\Audio\TagLib\Vorbis\File.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\Vorb +is\File.pm] dmake: Time stamp of [lib\Audio\TagLib\Vorbis\File.pm] is 1344805349 dmake: >>>> Making [lib\Audio\TagLib\Vorbis\File.pm] dmake: Up to date [lib\Audio\TagLib\Vorbis\File.pm], prq time = 1 , t +arget time = 1344805349) Checking prerequisite [lib\Audio\TagLib\Vorbis\Properties.pm] dmake: Infering prerequisite(s) and recipe for [lib\Audio\TagLib\Vorb +is\Properties.pm] dmake: Time stamp of [lib\Audio\TagLib\Vorbis\Properties.pm] is 13448 +05349 dmake: >>>> Making [lib\Audio\TagLib\Vorbis\Properties.pm] dmake: Up to date [lib\Audio\TagLib\Vorbis\Properties.pm], prq time = + 1 , target time = 1344805349) dmake: >>>> Making [pm_to_blib] dmake: Updating [pm_to_blib], (1345355220 > 0) C:\strawberry\perl\bin\perl.exe -MExtUtils::Install -e "pm_to_blib({@A +RGV}, 'blib\lib\auto', q[], '755')" -- \ lib/Audio/TagLib/ByteVector/Iterator.pm blib\lib\Audio\TagLi +b\ByteVector\Iterator.pm \ lib/Audio/TagLib/ID3v1/StringHandler.pm blib\lib\Audio\TagLi +b\ID3v1\StringHandler.pm \ lib/Audio/TagLib/String.pm blib\lib\Audio\TagLib\String.pm \ lib/Audio/TagLib/MPC/Properties.pm blib\lib\Audio\TagLib\MPC +\Properties.pm \ lib/Audio/TagLib/ID3v2/FrameListMap/Iterator.pm blib\lib\Aud +io\TagLib\ID3v2\FrameListMap\Iterator.pm \ lib/Audio/TagLib/ID3v2/UniqueFileIdentifierFrame.pm blib\lib +\Audio\TagLib\ID3v2\UniqueFileIdentifierFrame.pm \ lib/Audio/TagLib/Ogg/File.pm blib\lib\Audio\TagLib\Ogg\File. +pm \ lib/Audio/TagLib/MPEG/File.pm blib\lib\Audio\TagLib\MPEG\Fil +e.pm \ lib/Audio/TagLib/AudioProperties.pm blib\lib\Audio\TagLib\Au +dioProperties.pm \ lib/Audio/TagLib/ID3v2/Tag.pm blib\lib\Audio\TagLib\ID3v2\Ta +g.pm \ lib/Audio/TagLib/ID3v2/Footer.pm blib\lib\Audio\TagLib\ID3v2 +\Footer.pm \ lib/Audio/TagLib/String/Iterator.pm blib\lib\Audio\TagLib\St +ring\Iterator.pm \ lib/Audio/TagLib/Vorbis/Properties.pm blib\lib\Audio\TagLib\ +Vorbis\Properties.pm \ lib/Audio/TagLib/Vorbis/File.pm blib\lib\Audio\TagLib\Vorbis +\File.pm \ lib/Audio/TagLib/ID3v2/UnknownFrame.pm blib\lib\Audio\TagLib +\ID3v2\UnknownFrame.pm cp lib/Audio/TagLib/ByteVector/Iterator.pm blib\lib\Audio\TagLib\ByteV +ector\Iterator.pm cp lib/Audio/TagLib/ID3v1/StringHandler.pm blib\lib\Audio\TagLib\ID3v1 +\StringHandler.pm cp lib/Audio/TagLib/String.pm blib\lib\Audio\TagLib\String.pm cp lib/Audio/TagLib/ID3v2/UniqueFileIdentifierFrame.pm blib\lib\Audio\ +TagLib\ID3v2\UniqueFileIdentifierFrame.pm cp lib/Audio/TagLib/ID3v2/FrameListMap/Iterator.pm blib\lib\Audio\TagL +ib\ID3v2\FrameListMap\Iterator.pm cp lib/Audio/TagLib/MPC/Properties.pm blib\lib\Audio\TagLib\MPC\Proper +ties.pm cp lib/Audio/TagLib/AudioProperties.pm blib\lib\Audio\TagLib\AudioProp +erties.pm cp lib/Audio/TagLib/MPEG/File.pm blib\lib\Audio\TagLib\MPEG\File.pm cp lib/Audio/TagLib/Ogg/File.pm blib\lib\Audio\TagLib\Ogg\File.pm cp lib/Audio/TagLib/ID3v2/Footer.pm blib\lib\Audio\TagLib\ID3v2\Footer +.pm cp lib/Audio/TagLib/ID3v2/Tag.pm blib\lib\Audio\TagLib\ID3v2\Tag.pm cp lib/Audio/TagLib/String/Iterator.pm blib\lib\Audio\TagLib\String\It +erator.pm cp lib/Audio/TagLib/ID3v2/UnknownFrame.pm blib\lib\Audio\TagLib\ID3v2\ +UnknownFrame.pm cp lib/Audio/TagLib/Vorbis/File.pm blib\lib\Audio\TagLib\Vorbis\File.p +m cp lib/Audio/TagLib/Vorbis/Properties.pm blib\lib\Audio\TagLib\Vorbis\ +Properties.pm C:\strawberry\perl\bin\perl.exe -MExtUtils::Install -e "pm_to_blib({@A +RGV}, 'blib\lib\auto', q[], '755')" -- \ lib/Audio/TagLib/ID3v2/RelativeVolumeFrame.pm blib\lib\Audio +\TagLib\ID3v2\RelativeVolumeFrame.pm \ lib/Audio/TagLib/ID3v2/ExtendedHeader.pm blib\lib\Audio\TagL +ib\ID3v2\ExtendedHeader.pm \ lib/Audio/TagLib/FLAC/File.pm blib\lib\Audio\TagLib\FLAC\Fil +e.pm \ lib/Audio/TagLib/Ogg/FieldListMap.pm blib\lib\Audio\TagLib\O +gg\FieldListMap.pm \ lib/Audio/TagLib/ID3v1/GenreMap/Iterator.pm blib\lib\Audio\T +agLib\ID3v1\GenreMap\Iterator.pm \ lib/Audio/TagLib/Tag.pm blib\lib\Audio\TagLib\Tag.pm \ lib/Audio/TagLib/ID3v2/UserTextIdentificationFrame.pm blib\l +ib\Audio\TagLib\ID3v2\UserTextIdentificationFrame.pm \ lib/Audio/TagLib/APE/Footer.pm blib\lib\Audio\TagLib\APE\Foo +ter.pm \ lib/Audio/TagLib/ID3v2/Header.pm blib\lib\Audio\TagLib\ID3v2 +\Header.pm \ lib/Audio/TagLib/ID3v2/CommentsFrame.pm blib\lib\Audio\TagLi +b\ID3v2\CommentsFrame.pm \ lib/Audio/TagLib/File.pm blib\lib\Audio\TagLib\File.pm \ lib/Audio/TagLib/ID3v2/TextIdentificationFrame.pm blib\lib\A +udio\TagLib\ID3v2\TextIdentificationFrame.pm \ lib/Audio/TagLib/Ogg/Vorbis/File.pm blib\lib\Audio\TagLib\Og +g\Vorbis\File.pm \ lib/Audio/TagLib/APE/Tag.pm blib\lib\Audio\TagLib\APE\Tag.pm + \ lib/Audio/TagLib/ID3v2/AttachedPictureFrame.pm blib\lib\Audi +o\TagLib\ID3v2\AttachedPictureFrame.pm cp lib/Audio/TagLib/Tag.pm blib\lib\Audio\TagLib\Tag.pm cp lib/Audio/TagLib/ID3v1/GenreMap/Iterator.pm blib\lib\Audio\TagLib\I +D3v1\GenreMap\Iterator.pm cp lib/Audio/TagLib/Ogg/FieldListMap.pm blib\lib\Audio\TagLib\Ogg\Fiel +dListMap.pm cp lib/Audio/TagLib/APE/Footer.pm blib\lib\Audio\TagLib\APE\Footer.pm cp lib/Audio/TagLib/ID3v2/UserTextIdentificationFrame.pm blib\lib\Audi +o\TagLib\ID3v2\UserTextIdentificationFrame.pm cp lib/Audio/TagLib/File.pm blib\lib\Audio\TagLib\File.pm cp lib/Audio/TagLib/ID3v2/CommentsFrame.pm blib\lib\Audio\TagLib\ID3v2 +\CommentsFrame.pm cp lib/Audio/TagLib/ID3v2/Header.pm blib\lib\Audio\TagLib\ID3v2\Header +.pm cp lib/Audio/TagLib/ID3v2/TextIdentificationFrame.pm blib\lib\Audio\Ta +gLib\ID3v2\TextIdentificationFrame.pm cp lib/Audio/TagLib/APE/Tag.pm blib\lib\Audio\TagLib\APE\Tag.pm cp lib/Audio/TagLib/Ogg/Vorbis/File.pm blib\lib\Audio\TagLib\Ogg\Vorbi +s\File.pm cp lib/Audio/TagLib/ID3v2/AttachedPictureFrame.pm blib\lib\Audio\TagLi +b\ID3v2\AttachedPictureFrame.pm cp lib/Audio/TagLib/ID3v2/RelativeVolumeFrame.pm blib\lib\Audio\TagLib +\ID3v2\RelativeVolumeFrame.pm cp lib/Audio/TagLib/ID3v2/ExtendedHeader.pm blib\lib\Audio\TagLib\ID3v +2\ExtendedHeader.pm cp lib/Audio/TagLib/FLAC/File.pm blib\lib\Audio\TagLib\FLAC\File.pm C:\strawberry\perl\bin\perl.exe -MExtUtils::Install -e "pm_to_blib({@A +RGV}, 'blib\lib\auto', q[], '755')" -- \ lib/Audio/TagLib/Ogg/FLAC/File.pm blib\lib\Audio\TagLib\Ogg\ +FLAC\File.pm \ lib/Audio/TagLib/ID3v1.pm blib\lib\Audio\TagLib\ID3v1.pm \ lib/Audio/TagLib/MPEG/Header.pm blib\lib\Audio\TagLib\MPEG\H +eader.pm \ lib/Audio/TagLib/ID3v2/FrameFactory.pm blib\lib\Audio\TagLib +\ID3v2\FrameFactory.pm \ lib/Audio/TagLib/Ogg/FieldListMap/Iterator.pm blib\lib\Audio +\TagLib\Ogg\FieldListMap\Iterator.pm \ lib/Audio/TagLib/FileRef/FileTypeResolver.pm blib\lib\Audio\ +TagLib\FileRef\FileTypeResolver.pm \ lib/Audio/TagLib/ID3v2/FrameList.pm blib\lib\Audio\TagLib\ID +3v2\FrameList.pm \ lib/Audio/TagLib/APE/Item.pm blib\lib\Audio\TagLib\APE\Item. +pm \ lib/Audio/TagLib/ID3v2/FrameList/Iterator.pm blib\lib\Audio\ +TagLib\ID3v2\FrameList\Iterator.pm \ lib/Audio/TagLib/Ogg/PageHeader.pm blib\lib\Audio\TagLib\Ogg +\PageHeader.pm \ lib/Audio/TagLib/ID3v2/Frame.pm blib\lib\Audio\TagLib\ID3v2\ +Frame.pm \ lib/Audio/TagLib/MPC/File.pm blib\lib\Audio\TagLib\MPC\File. +pm \ lib/Audio/TagLib/ID3v2/RelativeVolumeFrame/PeakVolume.pm bli +b\lib\Audio\TagLib\ID3v2\RelativeVolumeFrame\PeakVolume.pm \ lib/Audio/TagLib/ID3v2.pm blib\lib\Audio\TagLib\ID3v2.pm \ lib/Audio/TagLib/FLAC/Properties.pm blib\lib\Audio\TagLib\FL +AC\Properties.pm \ lib/Audio/TagLib/Ogg/XiphComment.pm blib\lib\Audio\TagLib\Og +g\XiphComment.pm cp lib/Audio/TagLib/ID3v2/Frame.pm blib\lib\Audio\TagLib\ID3v2\Frame.p +m cp lib/Audio/TagLib/Ogg/PageHeader.pm blib\lib\Audio\TagLib\Ogg\PageHe +ader.pm cp lib/Audio/TagLib/MPC/File.pm blib\lib\Audio\TagLib\MPC\File.pm cp lib/Audio/TagLib/FLAC/Properties.pm blib\lib\Audio\TagLib\FLAC\Prop +erties.pm cp lib/Audio/TagLib/ID3v2.pm blib\lib\Audio\TagLib\ID3v2.pm ... cp lib/Audio/TagLib/APE/Item.pm blib\lib\Audio\TagLib\APE\Item.pm cp lib/Audio/TagLib/ID3v2/FrameList.pm blib\lib\Audio\TagLib\ID3v2\Fra +meList.pm cp lib/Audio/TagLib/ID3v2/FrameList/Iterator.pm blib\lib\Audio\TagLib\ +ID3v2\FrameList\Iterator.pm C:\strawberry\perl\bin\perl.exe -MExtUtils::Install -e "pm_to_blib({@A +RGV}, 'blib\lib\auto', q[], '755')" -- \ lib/Audio/TagLib/Ogg/Page.pm blib\lib\Audio\TagLib\Ogg\Page. +pm \ lib/Audio/TagLib/ByteVector.pm blib\lib\Audio\TagLib\ByteVec +tor.pm \ lib/Audi ...
      Whaaa, Something happened to the dmake screen cap code section and I cannot edit it ...
      Arrrg, I knew I should have created an account first!

      Can a mod fix it for me pleeeease???
      Thanks


      -Enjoy
      Hi all,

      I just remembered something I saw once that I forgot about until I wiped everything out and started over ...

      Running CMake 2.8 on Taglib gives a "not found" error:

      Looking for __RTTI___ in Crun Looking for __RTTI___ in Crun - not found
      and never gives a "found".

      I just looked this up and it's "Run-time type information", That sounds right dab nab on the nail head.

      What do ya'all think, how do I fix it?

      I'm a searching and a hoping!

      Thanks
      -Enjoy

      Hi All,

      Browsing through the Makefile, I see: DLSRC = dl_win32.xs.

      That file (dl_win32.xs) does NOT exists on my system, after a bit of WEB searching I find no definite answers.

      I have found one, it looks old (A warm day in June, 1995), I did reluctantly place it in the Audio::TagLib build directory without hopes, fortunately I was not let down, it didn't help!
      Reluctant because I think/suspect this has been added to Strawberry Perl (or Perl it's self).

      If I am understanding correctly, this loads dll's like MSVCRT, One that I suspect that may be causing these issues.

      I obliviously don't have the skills to debug this without some assistance.

      Thanks
      -Enjoy
      fh :)_~

        I can build taglib-1.7.2 by running:
        cmake -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=C:/MinGW/msys/1.0/lo +cal -DCMAKE_RELEASE_TYPE=Release .
        followed by:
        mingw32-make
        and:
        mingw32-make install
        I created copies (in the same directory) of the installed libtag.dll.a and libtag_c.dll.a named libtag.a and libtag_c.a.
        I then bypass all the crud in the Makefile.PL that the author provided by using this Makefile.PL:
        use ExtUtils::MakeMaker; WriteMakefile( NAME => 'Audio::TagLib', MIN_PERL_VERSION => '5.008001', VERSION_FROM => 'lib/Audio/TagLib.pm', LICENSE => 'perl', INC => '-IC:/MinGW/msys/1.0/local/include -IC:/sisy +phusion/Audio-Taglib-1.61/include', LIBS => '-LC:/MinGW/msys/1.0/local/lib -ltag', ( $Config{'version'} >= 5.005 ? ( ABSTRACT_FROM => 'lib/Audio/TagLib.pm', AUTHOR => 'Geoffrey Leach <gleach@cpan.org>' ) : () ), PREREQ_PM => { "Encode" => 0, "Test::Deep" => 0, "File::Slurp" => 0, "Test::More" => 0, "Test::Output" => 0, }, "CONFIGURE_REQUIRES" => { "ExtUtils::MakeMaker" => 0, "Config" => 0, }, );
        (Naturally, those hardcoded paths need to change for other boxes.)
        Then, assuming we need to build with g++ instead of gcc, I run perl Makefile.PL CC=g++
        That proceeds ok, but when I run dmake I get hammered with:
        TagLib.xs:26:21: fatal error: apeitem.h: No such file or directory com +pilation terminated.
        Sure enough, TagLib.xs unconditionally includes apeitem.h and, sure enough, I don't have it.
        Do you know what and where that file is ?

        If I can get past that problem, it may become evident that the Makefile.PL that I've used needs further amendment ... cross that bridge when I come to it.

        Cheers,
        Rob
      Could someone please recommend a Perl module (preferably a SMALL simple one) that uses a C/C++ Library, XS code and works on Windows XP.

      So I can test the system, learn more about the Perl/C interface, etc...

      I've tried a couple, they were HUGE and they failed for different reasons and no mention of Windows support or not.

      Thanks

      -Enjoy
      fh :)_~

        For a totally minimalist but functional, Win32 + XS module, see Win32::Fmode


        With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.

        The start of some sanity?

Re: Audio::TagLib and Strawberry Perl
by Anonymous Monk on Aug 23, 2012 at 02:30 UTC
    Whoaaa ... It does work!

    At least with mp3's, don't know how good yet, haven't done much testing, however it does retrieve the tags

    Cool Beans!

    Tester's please!

    -Enjoy
    fh :)_~

      Whoaaa ... It does work!

      You got it working on Strawberry ?

      Cheers,
      Rob
        C:\Documents and Settings\tcg\My Documents\Scripts\Perl\Audio>test.pl Artist => Stevie Ray Vaughan and Double Trouble Album => Greatest Hits Title => Little Wing track => 6 comment => genre => Blues year => 1995 length => 408 bitrate => 256 samplerate => 44100 channels => 2 file => C:/ttemp/06 - Little Wing.mp3 C:\Documents and Settings\tcg\My Documents\Scripts\Perl\Audio>

        Hows that ... :)

        -Enjoy
        fh :)_~

Re: Audio::TagLib and Strawberry Perl
by Anonymous Monk on Aug 23, 2012 at 05:38 UTC
    The ugly ...
    C:\strawberry\cpan\build\Audio-TagLib-1.61>dmake test C:\strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_h +arness(0, 'blib\lib', 'blib\arch')" t/*.t t/TagLib.t ....................................... ok t/TagLib_APE_Footer.t ............................ ok t/TagLib_APE_Item.t .............................. ok t/TagLib_APE_ItemListMap.t ....................... ok t/TagLib_APE_ItemListMap_Iterator.t .............. ok t/TagLib_APE_Tag.t ............................... ok t/TagLib_AudioProperties.t ....................... ok t/TagLib_ByteVector.t ............................ ok t/TagLib_ByteVector_Iterator.t ................... ok t/TagLib_ByteVectorList.t ........................ ok t/TagLib_File.t .................................. ok t/TagLib_FileRef.t ............................... ok t/TagLib_FileRef_FileTypeResolver.t .............. ok t/TagLib_FLAC_File.t ............................. ok t/TagLib_FLAC_Properties.t ....................... ok t/TagLib_ID3v1.t ................................. ok t/TagLib_ID3v1_GenreMap.t ........................ ok t/TagLib_ID3v1_GenreMap_Iterator.t ............... ok t/TagLib_ID3v1_StringHandler.t ................... ok t/TagLib_ID3v1_Tag.t ............................. ok t/TagLib_ID3v2_AttachedPictureFrame.t ............ 1/10 TagLib: A pict +ure frame must contain at least 5 bytes. t/TagLib_ID3v2_AttachedPictureFrame.t ............ ok t/TagLib_ID3v2_CommentsFrame.t ................... ok t/TagLib_ID3v2_ExtendedHeader.t .................. ok t/TagLib_ID3v2_Footer.t .......................... ok t/TagLib_ID3v2_Frame.t ........................... ok t/TagLib_ID3v2_FrameFactory.t .................... ok t/TagLib_ID3v2_FrameList.t ....................... 1/31 # Failed test at t/TagLib_ID3v2_FrameList.t line 67. # 'TIT2 ? title' # doesn't match '(?^:^TPE1.*?artist$)' # method sortedInsert(item) and getItem(i) failed # Looks like you failed 1 test of 31. t/TagLib_ID3v2_FrameList.t ....................... Dubious, test retur +ned 1 (wstat 256, 0x100) Failed 1/31 subtests t/TagLib_ID3v2_FrameList_Iterator.t .............. ok t/TagLib_ID3v2_FrameListMap.t .................... ok t/TagLib_ID3v2_FrameListMap_Iterator.t ........... ok t/TagLib_ID3v2_Header.t .......................... ok t/TagLib_ID3v2_RelativeVolumeFrame.t ............. ok t/TagLib_ID3v2_RelativeVolumeFrame_PeakVolume.t .. ok t/TagLib_ID3v2_SynchData.t ....................... ok t/TagLib_ID3v2_Tag.t ............................. ok t/TagLib_ID3v2_TextIdentificationFrame.t ......... ok t/TagLib_ID3v2_UniqueFileIdentifierFrame.t ....... ok t/TagLib_ID3v2_UnknownFrame.t .................... ok t/TagLib_ID3v2_UserTextIdentificationFrame.t ..... ok t/TagLib_MPC_File.t .............................. ok t/TagLib_MPC_Properties.t ........................ ok t/TagLib_MPEG_File.t ............................. ok t/TagLib_MPEG_Header.t ........................... ok t/TagLib_MPEG_Properties.t ....................... ok t/TagLib_MPEG_XingHeader.t ....................... ok t/TagLib_Ogg_FieldListMap.t ...................... ok t/TagLib_Ogg_FieldListMap_Iterator.t ............. ok t/TagLib_Ogg_File.t .............................. ok t/TagLib_Ogg_FLAC_File.t ......................... ok t/TagLib_Ogg_Page.t .............................. ok t/TagLib_Ogg_PageHeader.t ........................ ok t/TagLib_Ogg_Vorbis_File.t ....................... ok t/TagLib_Ogg_Vorbis_Properties.t ................. ok t/TagLib_Ogg_XiphComment.t ....................... ok t/TagLib_String.t ................................ Dubious, test retur +ned 5 (wstat 1280, 0x500) Failed 33/40 subtests t/TagLib_String_Iterator.t ....................... 1/19 iconv_open fai +led at t/TagLib_String_Iterator.t line 20. # Looks like you planned 19 tests but ran 5. # Looks like your test exited with 22 just after 5. t/TagLib_String_Iterator.t ....................... Dubious, test retur +ned 22 (wstat 5632, 0x1600) Failed 14/19 subtests t/TagLib_StringList.t ............................ ok t/TagLib_Tag.t ................................... ok t/TagLib_Vorbis_File.t ........................... ok t/TagLib_Vorbis_Properties.t ..................... ok Test Summary Report ------------------- t/TagLib_ID3v2_FrameList.t (Wstat: 256 Tests: 31 F +ailed: 1) Failed test: 9 Non-zero exit status: 1 t/TagLib_String.t (Wstat: 1280 Tests: 7 F +ailed: 0) Non-zero exit status: 5 Parse errors: Bad plan. You planned 40 tests but ran 7. t/TagLib_String_Iterator.t (Wstat: 5632 Tests: 5 F +ailed: 0) Non-zero exit status: 22 Parse errors: Bad plan. You planned 19 tests but ran 5. Files=60, Tests=605, 20 wallclock secs ( 0.55 usr + 0.23 sys = 0.78 +CPU) Result: FAIL Failed 3/60 test programs. 1/605 subtests failed. dmake: Error code 255, while making 'test_dynamic' C:\strawberry\cpan\build\Audio-TagLib-1.61>

    TagLib_String fails miserably ... causes a crash.
    to be expected with the iostream issues.

    -Enjoy
    fh :)_~

      TagLib_String fails miserably ... causes a crash.
      to be expected with the iostream issues.


      Yes ... I get the same (and for TagLib_String_Iterator.t too) , though I'm not getting the TagLib_ID3v2_FrameList.t failure for any of my x86 perls.
      However, I think my x64 perl-5.12. is the only x64 perl that I have that passes TagLib_ID3v2_FrameList.t

      Anyway ... ppm packages for anyone interested are available from the sisyphusion repo - and there's a link on that page to the patches I applied.

      In addition to those patches, I used a rewritten Makefile.PL:
      use ExtUtils::MakeMaker; WriteMakefile( NAME => 'Audio::TagLib', MIN_PERL_VERSION => '5.008001', VERSION_FROM => 'lib/Audio/TagLib.pm', LICENSE => 'perl', XSOPT => '-C++ -hiertype', ( $Config{'version'} >= 5.005 ? ( ABSTRACT_FROM => 'lib/Audio/TagLib.pm', AUTHOR => 'Geoffrey Leach <gleach@cpan.org>' ) : () ), PREREQ_PM => { "Encode" => 0, "Test::Deep" => 0, "File::Slurp" => 0, "Test::More" => 0, "Test::Output" => 0, }, "CONFIGURE_REQUIRES" => { "ExtUtils::MakeMaker" => 0, "Config" => 0, }, );
      and then specified the INC, LIBS and CC settings as args to the 'perl Makefile.PL' command line.

      One other problem with the module:
      C:\>perldoc Audio::TagLib Got a 0-length file from C:\MinGW\perl\site\lib\Audio\TagLib.pm via Po +d::Perldoc ::ToText!? C:\>
      I don't know what that's about and haven't even looked.

      Cheers,
      Rob
        IMO, In TagLib.xs, apeitem.h should be replaced with taglib.h and moved up after ppoprt.h.
        Why the changes to iconv_wrap and related ??