I wanted to build an awesome place for people to discuss module specific issues, but I don't have any more time for this, and there are much better places to discuss Perl-related issues. I'd recommend asking your question on Stack Overflow or on Perl Monks.
If you are looking for a Perl tutorial or Perl-related news, I hope these links will serve you well.
Posted on 2012-08-15 23:54:51.21122-07 by jaloser in response to 13769
Re: Windows Support
Hi, Thanks.

Audio::TagLib 1.61
I'm actually back here looking to see if I can find what versions of TagLib C++ are known to work with Audio::TagLib 1.61.

I started with TagLib C++ 1.7.2, Currently working with 1.6.3. I can get them both to compile standalone (outside the Audio::TagLib build process), but not within. Same build tools!

Why does it need to be built again???
Should I not just be able to point it to the libs and includes that are already built???

The biggest problem I see is the use of TagLib C++'s 'taglib-config' script ... it needs to be multi platform, else a unix shell command processor would have to be installed on Windows systems, something I am not in favor of!

I would love to help, even have the time, I have several different flavors of windows and FreeBSD in front of me that are all capable of development or testing, unfortunately my build process skills may not be enough at this point in time! I'm working on changing that.

I'm willing to do what ever it takes!
Want me to do / try something specific ... PLEASE SAY SO!

I have been hacking away at makefile.pl, it runs to successful completion by removing the calls to the taglib-config script and hardcoding the values.

At that point I am guessing where to go next, I do not know the process! So I tried dmake, dmake runs for a bit and ultimately fails with "Error code 129, while making 'TagLib.o'".

There are lots of errors though:
(I just noticed the FIRST include to g++ is missing the '-I' ... Have to go fix that)
(g++ -c -IC:\strawberry\c\include -I./include)
C:\strawberry\cpan\build\Audio-TagLib-1.61>dmake g++ -c C:\strawberry\c\include -I./include -I -IC:/Libraries/taglib-1.6.3/taglib -IC:/Libraries/ta +glib-1.6.3 -IC:/Libraries/taglib-1.6.3/taglib/ape -IC:/Libraries/taglib-1.6.3/taglib/asf -IC:/Libr +aries/taglib-1.6.3/taglib/flac -IC:/Libraries/taglib-1.6.3/taglib/mp4 -IC:/Libraries/taglib-1.6.3/ taglib/mpc -IC:/Libraries/taglib-1.6.3/taglib/mpeg -IC:/Libraries/taglib-1.6.3/taglib/mpeg/id3v1 -I +C:/Libraries/taglib-1.6.3/taglib/mpeg/id3v2 -IC:/Libraries/taglib-1.6.3/taglib/mpeg/id3v2/frames - +IC:/Libraries/taglib-1.6.3/taglib/ogg -IC:/Libraries/taglib-1.6.3/taglib/ogg/flac -IC:/Libraries/t aglib-1.6.3/taglib/ogg/speex -IC:/Libraries/taglib-1.6.3/taglib/ogg/vorbis -IC:/Libraries/taglib-1. +6.3/taglib/riff -IC:/Libraries/taglib-1.6.3/taglib/riff/aiff -IC:/Libraries/taglib-1.6.3/taglib/ri +ff/wav -IC:/Libraries/taglib-1.6.3/taglib/toolkit -IC:/Libraries/taglib-1.6.3/taglib/trueaudio -IC :/Libraries/taglib-1.6.3/taglib/wavpack -IC:/Libraries/taglib-1.6.3/taglib -s -O2 -DWIN32 -DP +ERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfiel +ds -s -O2 -DVERSION=\"1.61\" -DXS_VERSION=\"1.61\" "-IC:\strawberry\perl\lib\CORE" -D_BSD_ ICONV -DNO_DOXYGEN TagLib.c TagLib.xs:20:15: warning: extra tokens at end of #ifdef directive [enabled by default] TagLib.xs:21:15: warning: extra tokens at end of #undef directive [enabled by default] TagLib.xs:23:16: warning: extra tokens at end of #undef directive [enabled by default] In file included from c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/iostream:40 +:0, from C:/Libraries/taglib-1.6.3/taglib/toolkit/tbytevector.h:33, from C:/Libraries/taglib-1.6.3/taglib/ape/apeitem.h:29, from TagLib.xs:26: c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/ostream:313:49: error: macro "Per +lLIO_write" requires 3 arguments, but only 2 given In file included from c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/ostream:588 +:0, from c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/iostream:40 +, from C:/Libraries/taglib-1.6.3/taglib/toolkit/tbytevector.h:33, from C:/Libraries/taglib-1.6.3/taglib/ape/apeitem.h:29, from TagLib.xs:26: c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/bits/ostream.tcc:185:44: error: m +acro "PerlLIO_write" requires 3 arguments, but only 2 given In file included from c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/iostream:41 +:0, from C:/Libraries/taglib-1.6.3/taglib/toolkit/tbytevector.h:33, from C:/Libraries/taglib-1.6.3/taglib/ape/apeitem.h:29, from TagLib.xs:26: c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/istream:467:42: error: macro "Per +lLIO_read" requires 3 arguments, but only 2 given In file included from c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/istream:859 +:0, from c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/iostream:41 +, from C:/Libraries/taglib-1.6.3/taglib/toolkit/tbytevector.h:33, from C:/Libraries/taglib-1.6.3/taglib/ape/apeitem.h:29, from TagLib.xs:26: c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/bits/istream.tcc:652:40: error: m +acro "PerlLIO_read" requires 3 arguments, but only 2 given TagLib.xs:29:0: warning: "do_open" redefined [enabled by default] TagLib.xs:28:0: note: this is the location of the previous definition TagLib.xs:31:0: warning: "do_close" redefined [enabled by default] TagLib.xs:30:0: note: this is the location of the previous definition In file included from TagLib.c:3678:0: C:/Libraries/taglib-1.6.3/taglib/ogg/oggpageheader.h:222:17: error: macro "PerlLIO_read" requires 3 + arguments, but only 1 given In file included from TagLib.c:5247:0: C:/Libraries/taglib-1.6.3/taglib/mpeg/mpegproperties.h:110:17: error: macro "PerlLIO_read" requires + 3 arguments, but only 1 given In file included from TagLib.c:5592:0: C:/Libraries/taglib-1.6.3/taglib/mpc/mpcproperties.h:77:17: error: macro "PerlLIO_read" requires 3 +arguments, but only 1 given In file included from TagLib.c:5791:0: C:/Libraries/taglib-1.6.3/taglib/flac/flacproperties.h:84:17: error: macro "PerlLIO_read" requires +3 arguments, but only 1 given In file included from C:/Libraries/taglib-1.6.3/taglib/ogg/vorbis/vorbisfile.h:33:0, from TagLib.c:6611: C:/Libraries/taglib-1.6.3/taglib/ogg/vorbis/vorbisproperties.h:104:17: error: macro "PerlLIO_read" +requires 3 arguments, but only 1 given In file included from TagLib.c:6611:0: C:/Libraries/taglib-1.6.3/taglib/ogg/vorbis/vorbisfile.h:97:75: error: macro "PerlLIO_read" require +s 3 arguments, but only 2 given In file included from TagLib.c:7075:0: C:/Libraries/taglib-1.6.3/taglib/ogg/flac/oggflacfile.h:106:75: error: macro "PerlLIO_read" require +s 3 arguments, but only 2 given In file included from TagLib.c:7448:0: C:/Libraries/taglib-1.6.3/taglib/mpeg/mpegfile.h:259:75: error: macro "PerlLIO_read" requires 3 arg +uments, but only 2 given In file included from TagLib.c:8067:0: C:/Libraries/taglib-1.6.3/taglib/mpc/mpcfile.h:163:75: error: macro "PerlLIO_read" requires 3 argum +ents, but only 2 given In file included from TagLib.c:8355:0: C:/Libraries/taglib-1.6.3/taglib/flac/flacfile.h:189:75: error: macro "PerlLIO_read" requires 3 arg +uments, but only 2 given In file included from TagLib.c:13540:0: C:/Libraries/taglib-1.6.3/taglib/mpeg/id3v2/id3v2tag.h:275:17: error: macro "PerlLIO_read" requires + 3 arguments, but only 1 given In file included from TagLib.c:17038:0: C:/Libraries/taglib-1.6.3/taglib/mpeg/id3v1/id3v1tag.h:165:17: error: macro "PerlLIO_read" requires + 3 arguments, but only 1 given In file included from TagLib.c:17613:0: C:/Libraries/taglib-1.6.3/taglib/ape/apetag.h:145:17: error: macro "PerlLIO_read" requires 3 argume +nts, but only 1 given In file included from TagLib.xs:18:0: ./include/iconv_wrap.h: In function 'size_t iconv_wrap(libiconv_t, char**, size_t*, char**, size_t* +)': ./include/iconv_wrap.h:23:30: error: invalid conversion from 'const char**' to 'char**' [-fpermissi +ve] c:/strawberry/c/lib/gcc/../../lib/gcc/i686-w64-mingw32/4.6.3/../../../../include/iconv.h:83:15: err +or: initializing argument 2 of 'size_t libiconv(libiconv_t, char**, size_t*, char**, size_t*)' [ +-fpermissive] 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-1.6.3/taglib/toolkit/tbytevector.h:33, from C:/Libraries/taglib-1.6.3/taglib/ape/apeitem.h:29, from TagLib.xs:26: c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/streambuf: At global scope: c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/streambuf:571:7: error: expected +')' before '*' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/streambuf:571:7: error: expected +')' before '*' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/streambuf:571:7: error: expected +')' before '*' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/streambuf:571:7: error: expected +')' before '*' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/streambuf:571:7: error: expected +';' at end of member declaration c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/streambuf:571:7: error: expected +unqualified-id before ')' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/streambuf:571:7: error: expected +';' at end of member declaration c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/streambuf:571:7: error: expected +unqualified-id before ')' token c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/streambuf: In member function 'st +d::basic_streambuf<_CharT, _Traits>::__streambuf_type* std::basic_streambuf<_CharT, _Traits>::pubs +etbuf(std::basic_streambuf<_CharT, _Traits>::char_type*, std::streamsize)': c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/streambuf:238:22: error: expected + unqualified-id before '(' token In file included from TagLib.xs:14:0: C:\strawberry\perl\lib\CORE/XSUB.h: At global scope: C:\strawberry\perl\lib\CORE/XSUB.h:562:20: error: 'std::basic_ostream<_CharT, _Traits>& std::basic_ +ostream<_CharT, _Traits>::PerlLIO_write' is not a static member of 'class std::basic_ostream<_Char +T, _Traits>' C:\strawberry\perl\lib\CORE/XSUB.h:562:20: error: template definition of non-template 'std::basic_o +stream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::PerlLIO_write' C:\strawberry\perl\lib\CORE/XSUB.h:562:20: warning: extended initializer lists only available with +-std=c++0x or -std=gnu++0x [enabled by default] In file included from c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/ostream:588 +:0, from c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/iostream:40 +, from C:/Libraries/taglib-1.6.3/taglib/toolkit/tbytevector.h:33, from C:/Libraries/taglib-1.6.3/taglib/ape/apeitem.h:29, from TagLib.xs:26: c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/bits/ostream.tcc:194:14: error: e +xpected primary-expression before '__cerb' c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/bits/ostream.tcc:194:14: error: e +xpected '}' before '__cerb' c:\strawberry\c\bin\../lib/gcc/i686-w64-mingw32/4.6.3/include/c++/bits/ostream.tcc:195:7: error: ex +pected unqualified-id before 'if' In file included from TagLib.c:8799:0: C:/Libraries/taglib-1.6.3/taglib/fileref.h:94:44: error: expected '}' before end of line C:/Libraries/taglib-1.6.3/taglib/fileref.h:94:44: error: expected declaration before end of line dmake: Error code 129, while making 'TagLib.o' C:\strawberry\cpan\build\Audio-TagLib-1.61>


O-wells, back to it, I want to get this working!

Thanks
fh : )_~
Direct Responses: Write a response