Thread

Posted on Fri Sep 15 22:23:55 2006 by jasnic02
Windows support?
Any possibility of this being 'ported' for Windows (w/ ActiveState Perl)? Thanks!
Direct Responses: 3049 | 3067 | Write a response
Posted on Fri Sep 15 22:40:26 2006 by szabgab in response to 3048
Re: Windows support?
I am not sure if the module can work on Windows, but you try asking Randy Kobes to check this.
Follow the link above to "Kobes search".
At the bottom of that page you will find a link to "ppm-request", that's where you can ask Randy Kobes to try to build one for you and for the community,
Write a response
Posted on Mon Sep 18 05:44:29 2006 by dongxu in response to 3048
Re: Windows support?
Hi, You can check here http://developer.kde.org/~wheeler/taglib.html#windows the status of porting to windows. So far I didn't open build on that platform. A fresh try is also highly appreciated ;-P Dongxu
Direct Responses: 5177 | Write a response
Posted on Mon May 21 08:42:04 2007 by thekat in response to 3067
Re: Windows support?
I just tried on Windows using Cygwin, and ran into an iconv issue:

$ make
(snip)
g++ -c -I/usr/include -I./include -I. -I/usr/local/include/taglib -DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -pipe -I/usr/local/include -DUSEIMPORTLIB -O3 -DVERSION=\"1.43\" -DXS_VERSION=\"1.43\" "-I/usr/lib/perl5/5.8/cygwin/CORE" -DNO_DOXYGEN TagLib.c
In file included from TagLib.xs:16:
./include/iconv_wrap.h: In function `size_t iconv_wrap(void*, char**, size_t*, char**, size_t*)':
./include/iconv_wrap.h:30: error: invalid conversion from `char**' to `const char**'
./include/iconv_wrap.h:30: error: initializing argument 2 of `size_t libiconv(void*, const char**, size_t*, char**, size_t*)'
TagLib.c:1335:15: warning: extra tokens at end of #ifdef directive
TagLib.c:1336:15: warning: extra tokens at end of #undef directive
TagLib.c:1339:16: warning: extra tokens at end of #undef directive
TagLib.c:1344:1: warning: "do_open" redefined
TagLib.c:1343:1: warning: this is the location of the previous definition
TagLib.c:1346:1: warning: "do_close" redefined
TagLib.c:1345:1: warning: this is the location of the previous definition
make: *** [TagLib.o] Error 1

Here's some other information about current versions:
(Perl, from stock Cygwin distribution as of today)
$ perl --version

This is perl, v5.8.7 built for cygwin-thread-multi-64int
(with 1 registered patch, see perl -V for more detail)

Copyright 1987-2005, 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 kit.

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 Page.

(iconv is stock from Cygwin distribution as of today)
$ iconv --version
iconv (GNU libiconv 1.11)
Copyright (C) 2000-2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Bruno Haible.

(Taglib version, compiled on Cygwin with no additional modifications)
$ taglib-config --version
1.4

(Cygwin DLL version, though I doubt it's important :) )
1.5.24-cr-0x5f1
Direct Responses: 5178 | Write a response
Posted on Mon May 21 08:45:55 2007 by thekat in response to 5177
Re: Windows support?
Sorry, should have included this too:
$ g++ --version
g++ (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Direct Responses: 5195 | Write a response
Posted on Tue May 22 09:53:49 2007 by dongxu in response to 5178
Re: Windows support?
Hi, Thanks for the trying. This could happen due to different api declarations on different platforms. Linux uses
size_t iconv(iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
, and some others may use
size_t iconv(iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesle +ft
Previous C-style cast in that header is not C++-safe for some gcc versions. Could you pls try this patch.
--- include/iconv_wrap.h.orig 2007-05-22 14:50:52.000000000 +0800 +++ include/iconv_wrap.h 2007-05-22 14:49:23.000000000 +0800 @@ -13,7 +13,8 @@ size_t iconv_wrap(iconv_t cd, char **outbuf, size_t *outbytesleft) { char *in = *inbuf; - const char *in_c = (const char*) in; + //const char *in_c = (const char*) in; + const char *in_c = const_cast<const char*>(in); return iconv(cd, &in_c, inbytesleft, outbuf, outbytesleft);
Direct Responses: 5242 | Write a response
Posted on Mon May 28 19:52:30 2007 by thekat in response to 5195
Re: Windows support?
I'm afraid this didn't do anything really, but shift the error by one line :P

g++ -c -I/usr/include -I./include -I. -I/usr/local/include/taglib -DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -pipe -I/usr/local/include -DUSEIMPORTLIB -O3 -DVERSION=\"1.43\" -DXS_VERSION=\"1.43\" "-I/usr/lib/perl5/5.8/cygwin/CORE" -DNO_DOXYGEN TagLib.c
In file included from TagLib.xs:16:
./include/iconv_wrap.h: In function `size_t iconv_wrap(void*, char**, size_t*, char**, size_t*)':
./include/iconv_wrap.h:31: error: invalid conversion from `char**' to `const char**'
./include/iconv_wrap.h:31: error: initializing argument 2 of `size_t libiconv(void*, const char**, size_t*, char**, size_t*)'
TagLib.c:1335:15: warning: extra tokens at end of #ifdef directive
TagLib.c:1336:15: warning: extra tokens at end of #undef directive
TagLib.c:1339:16: warning: extra tokens at end of #undef directive
TagLib.c:1344:1: warning: "do_open" redefined
TagLib.c:1343:1: warning: this is the location of the previous definition
TagLib.c:1346:1: warning: "do_close" redefined
TagLib.c:1345:1: warning: this is the location of the previous definition
make: *** [TagLib.o] Error 1
Direct Responses: 5510 | Write a response
Posted on Fri Jun 22 17:35:42 2007 by dongxu in response to 5242
Re: Windows support?
oh, that might be a bug/shortcome of libstdc++ in cygwin, since const_cast is C++ standard functionality. Try updating that lib and re-install pls ;-)
Write a response