media-libs/id3lib-3.8.0_pre2 does not compile on my Gentoo system. The system has been brought up-to-date with emerge rsync; emerge -u world. Versions: Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.4/specs Configured with: /var/tmp/portage/gcc-3.0.4-r4/work/gcc-3.0.4/configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share/gcc-3.0.4 --enable-shared --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --target=i686-pc-linux-gnu --enable-threads=posix --disable-checking --with-local-prefix=/usr/local --with-system-zlib --enable-shared --enable-nls --without-included-gettext Thread model: posix gcc version 3.0.4 GNU C Library stable release version 2.2.5, by Roland McGrath et al. Copyright (C) 1992-2001, 2002 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. Compiled by GNU CC version 2.95.3 20010315 (release). Compiled on a Linux 2.4.18 system on 2002-04-10. Available extensions: GNU libio by Per Bothner crypt add-on version 2.1 by Michael Glad and others linuxthreads-0.9 by Xavier Leroy BIND-8.2.3-T5B libthread_db work sponsored by Alpha Processor Inc NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk Report bugs using the `glibcbug' script to <bugs@gnu.org>. Error Message: make[2]: Entering directory `/var/tmp/portage/id3lib-3.8.0_pre2/work/id3lib-3.8.0pre2/src' /bin/sh ../libtool --mode=compile c++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include/id3 -I../include -march=i686 -O3 -pipe -Wall -Wno-unused -Wno-inline -Woverloaded-virtual -Wmissing-declarations -c tag_file.cpp rm -f .libs/tag_file.lo c++ -DHAVE_CONFIG_H -I. -I. -I.. -I../include/id3 -I../include -march=i686 -O3 -pipe -Wall -Wno-unused -Wno-inline -Woverloaded-virtual -Wmissing-declarations -c -fPIC -DPIC tag_file.cpp -o .libs/tag_file.lo tag_file.cpp: In function `size_t RenderV2ToFile(const ID3_TagImpl&, std::fstream&)': tag_file.cpp:280: no matching function for call to `std::basic_ofstream<char, std::char_traits<char> >::basic_ofstream(int&)' /usr/include/g++-v3/bits/std_iosfwd.h:84: candidates are: std::basic_ofstream<char, std::char_traits<char> >::basic_ofstream(const std::basic_ofstream<char, std::char_traits<char> >&) /usr/include/g++-v3/bits/std_fstream.h:319: std::basic_ofstream<_CharT, _Traits>::basic_ofstream(const char*, std::_Ios_Openmode = (std::ios_base::out | std::ios_base::trunc)) [with _CharT = char, _Traits = std::char_traits<char>] /usr/include/g++-v3/bits/std_fstream.h:313: std::basic_ofstream<_CharT, _Traits>::basic_ofstream() [with _CharT = char, _Traits = std::char_traits<char>] tag_file.cpp:295: no matching function for call to `std::basic_fstream<char, std::char_traits<char> >::read(unsigned char[8192], int)' /usr/include/g++-v3/bits/istream.tcc:750: candidates are: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::read(_CharT*, int) [with _CharT = char, _Traits = std::char_traits<char>] tag_file.cpp:297: no matching function for call to `std::basic_ofstream<char, std::char_traits<char> >::write(unsigned char[8192], size_t&)' /usr/include/g++-v3/bits/ostream.tcc:370: candidates are: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::write(const _CharT*, int) [with _CharT = char, _Traits = std::char_traits<char>] make[2]: *** [tag_file.lo] Error 1 make[2]: Leaving directory `/var/tmp/portage/id3lib-3.8.0_pre2/work/id3lib-3.8.0pre2/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/id3lib-3.8.0_pre2/work/id3lib-3.8.0pre2' make: *** [all-recursive-am] Error 2 !!! ERROR: The ebuild did not complete successfully. !!! Function src_compile, Line 3, Exitcode 2 !!! (no error message) !!! emerge aborting on /usr/portage/media-libs/id3lib/id3lib-3.8.0_pre2.ebuild .
Hi Az, It looks like something needs to be done to have this thing compile with gcc-3, which is apparently not linking into the libstdc++?
I have had issues similar to this with other applications (nothing in portage) it appears that gcc-3 doesn't manage to correctly (or maybe gcc-2 linked too liberaly) detect when c++ headers have been included and it needs to link against -lstdc++
I ahve tried doing the "manual dance", i.e. doing the ebuild-steps by hand and doing the last failing call to c++ by hand and adding "-lstdc++". Same error. Either it's unrelated to that lib or the error is introduced earlier.
Its not a linker error, but compiler error. Something in the code is not gcc-3 friendly, and I do not have that type of experience.
Should be fixed in -r1.
I can confirm this, the library now compiles. Thanks for the good work!