While compiling ripperX on a slackware-current machine with id3lib-3.8.3 installed, I get a long list of libid3.so undefined reference errors. Here's a short sample:
/usr/local/lib/libid3.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >::seekp(std::fpos<__mbstate_t>)'
/usr/local/lib/libid3.so: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int)'
/usr/local/lib/libid3.so: undefined reference to `std::ios_base::Init::~Init()'
/usr/local/lib/libid3.so: undefined reference to `vtable for std::basic_streambuf<char, std::char_traits<char> >'
/usr/local/lib/libid3.so: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned int, std::allocator<char> const&)'
/usr/local/lib/libid3.so: undefined reference to `std::ios_base::~ios_base()'
/usr/local/lib/libid3.so: undefined reference to `__cxa_begin_catch'
/usr/local/lib/libid3.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >::seekp(long long, std::_Ios_Seekdir)'
/usr/local/lib/libid3.so: undefined reference to `std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::reserve(unsigned int)'
/usr/local/lib/libid3.so: undefined reference to `std::__basic_file<char>::is_open() const'
Any idea why I'm getting these? ripperX 2.6.7 compiles just fine, and once I figured out the CDDB thing, it ripped a CD as I would expect it to. But if 2.7.0 has extra goodness, I'd like to experience it.
Cheers,
hussar
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Okay, I have an update on this. Part of the patch that was incorporated into 2.7.0 included a file named id3.h, which I suspect was masking the "real" id3.h.
I've checked in a new version to SVN that gets rid of the local id3* files. Could you give it try and let me know if it's working better on slackware?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I've had this problem before and up until now have been unable to figure it out. I started having the same errors that you describe and after much searching and a bit of testing it seems that the compiler is missing a few flags when it tries to create the binaries. That leaves you with two options; either way start by extracting the source.
Option one is to add "-lstdc++ -lz" at the end of line 14 in src/Makefile.in ("LDFLAGS = @LDFLAGS@ @LIBS@ -lutil -lid3"), then proceed as normal (configure, make, make install).
Option two is to run configure as normal then add "-lstdc++ -lz" at the end of line 14 in src/Makefile ("LDFLAGS = <bunch of flags>").
Either way will add the two flags to the make binary step and should solve the problem. It worked for me on a fresh install of Slackware 12 (after installing id3lib).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
While compiling ripperX on a slackware-current machine with id3lib-3.8.3 installed, I get a long list of libid3.so undefined reference errors. Here's a short sample:
/usr/local/lib/libid3.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >::seekp(std::fpos<__mbstate_t>)'
/usr/local/lib/libid3.so: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int)'
/usr/local/lib/libid3.so: undefined reference to `std::ios_base::Init::~Init()'
/usr/local/lib/libid3.so: undefined reference to `vtable for std::basic_streambuf<char, std::char_traits<char> >'
/usr/local/lib/libid3.so: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned int, std::allocator<char> const&)'
/usr/local/lib/libid3.so: undefined reference to `std::ios_base::~ios_base()'
/usr/local/lib/libid3.so: undefined reference to `__cxa_begin_catch'
/usr/local/lib/libid3.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >::seekp(long long, std::_Ios_Seekdir)'
/usr/local/lib/libid3.so: undefined reference to `std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::reserve(unsigned int)'
/usr/local/lib/libid3.so: undefined reference to `std::__basic_file<char>::is_open() const'
Any idea why I'm getting these? ripperX 2.6.7 compiles just fine, and once I figured out the CDDB thing, it ripped a CD as I would expect it to. But if 2.7.0 has extra goodness, I'd like to experience it.
Cheers,
hussar
This is most likely due to the ID3v2 patches that were added to the 2.7.0
release. I will be looking at this issue this week.
Thanks for your patience.
Cheers,
tony
Okay, I have an update on this. Part of the patch that was incorporated into 2.7.0 included a file named id3.h, which I suspect was masking the "real" id3.h.
I've checked in a new version to SVN that gets rid of the local id3* files. Could you give it try and let me know if it's working better on slackware?
Recycled from the same error in the help thread:
I've had this problem before and up until now have been unable to figure it out. I started having the same errors that you describe and after much searching and a bit of testing it seems that the compiler is missing a few flags when it tries to create the binaries. That leaves you with two options; either way start by extracting the source.
Option one is to add "-lstdc++ -lz" at the end of line 14 in src/Makefile.in ("LDFLAGS = @LDFLAGS@ @LIBS@ -lutil -lid3"), then proceed as normal (configure, make, make install).
Option two is to run configure as normal then add "-lstdc++ -lz" at the end of line 14 in src/Makefile ("LDFLAGS = <bunch of flags>").
Either way will add the two flags to the make binary step and should solve the problem. It worked for me on a fresh install of Slackware 12 (after installing id3lib).