Bug 79847

Summary: compilation error at juk compilation
Product: [Applications] juk Reporter: Andreas Boland <Bone13>
Component: generalAssignee: Scott Wheeler <wheeler>
Status: RESOLVED NOT A BUG    
Severity: normal    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Debian testing   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Andreas Boland 2004-04-18 00:46:39 UTC
Version:            (using KDE KDE 3.2.1)
Installed from:    Debian testing/unstable Packages
Compiler:          gcc 3.3 (Debian Sid Version) 
OS:          Linux

if I compile juk of the kdemultimedia package, it hangs with the following error:

make[3]: Entering directory `/usr/src/kde/kdemultimedia-3.2.1/juk'
/bin/sh ../libtool --silent --mode=link --tag=CXX g++  -Wnon-virtual-d                             tor -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wc                             ast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwr                             ite-strings -O2 -Wformat-security -Wmissing-format-attribute -fno-exce                             ptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_C                             AST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION    -o juk -L/usr/X1                             1R6/lib -L/usr/local/qt/lib -L/usr/local/kde/lib  -R /usr/local/kde/li                             b -R /usr/local/qt/lib -R /usr/X11R6/lib gstreamerplayer.o artsplayer.                             o directorylist.o stringhash.o sortedstringlist.o systemtray.o splashs                             creen.o statuslabel.o collectionlist.o playlistitem.o playlist.o playl                             istsplitter.o playlistbox.o tageditor.o cache.o player.o tag.o customa                             ction.o slideraction.o keydialog.o juk.o main.o tagguesser.o tagguesse                             rconfigdlg.o playlistsearch.o searchwidget.o filerenamer.o dynamicplay                             list.o searchplaylist.o musicbrainzquery.o mediafiles.o viewmode.o adv                             ancedsearchdialog.o historyplaylist.o musicbrainzitem.o trackpickerdia                             log.o filerenamerconfigdlg.o stringshare.o jukIface_skel.o directoryli                             stbase.o tagguesserconfigdlgwidget.o trackpickerdialogbase.o filerenam                             erconfigdlgwidget.o  -lmusicbrainz -lartskde -lkio -L/usr/lib -ltag -l                             xine
playlist.o(.text+0x7327): In function `Playlist::slotRenameTag()':
: undefined reference to `TagLib::ID3v1::genreList()'
playlist.o(.text+0x7366): In function `Playlist::slotRenameTag()':
: undefined reference to `TagLib::String::toCString(bool) const'
playlist.o(.text+0x741a): In function `Playlist::slotRenameTag()':
: undefined reference to `TagLib::StringList::~StringList [in-charge]()'
playlist.o(.gnu.linkonce.t._ZNSt4listIN6TagLib6StringESaIS1_EE6insertESt14_List_iteratorIS1_RS1_PS1_ERKS1_+0x28): In function `std::list<TagLib::String, std::allocator<TagLib::String> >::insert(std::_List_iterator<TagLib::String, TagLib::String&, TagLib::String*>, TagLib::String const&)':
: undefined reference to `TagLib::String::String[in-charge](TagLib::String const&)'
tageditor.o(.text+0x16fd): In function `TagEditor::readConfig()':
: undefined reference to `TagLib::ID3v1::genreList()'
tageditor.o(.text+0x1746): In function `TagEditor::readConfig()':
: undefined reference to `TagLib::String::toCString(bool) const'
tageditor.o(.text+0x1852): In function `TagEditor::readConfig()':
: undefined reference to `TagLib::StringList::~StringList [in-charge]()'
tag.o(.text+0x48): In function `Tag::createTag(QString const&, bool)':
: undefined reference to `TagLib::MPEG::File::File[in-charge](char const*, bool, TagLib::AudioProperties::ReadStyle)'
tag.o(.text+0x58): In function `Tag::createTag(QString const&, bool)':
: undefined reference to `TagLib::File::isValid() const'
tag.o(.text+0x7f): In function `Tag::createTag(QString const&, bool)':
: undefined reference to `TagLib::MPEG::File::~File [in-charge]()'
tag.o(.text+0x95): In function `Tag::createTag(QString const&, bool)':
: undefined reference to `TagLib::MPEG::File::~File [in-charge]()'
tag.o(.text+0xcf): In function `Tag::createTag(QString const&, bool)':
: undefined reference to `TagLib::Vorbis::File::File[in-charge](char const*, bool, TagLib::AudioProperties::ReadStyle)'
tag.o(.text+0xdf): In function `Tag::createTag(QString const&, bool)':
: undefined reference to `TagLib::File::isValid() const'
tag.o(.text+0x106): In function `Tag::createTag(QString const&, bool)':
: undefined reference to `TagLib::Vorbis::File::~File [in-charge]()'
tag.o(.text+0x114): In function `Tag::createTag(QString const&, bool)':
: undefined reference to `TagLib::Vorbis::File::~File [in-charge]()'
tag.o(.text+0x14f): In function `Tag::createTag(QString const&, bool)':
: undefined reference to `TagLib::FLAC::File::File[in-charge](char const*, bool, TagLib::AudioProperties::ReadStyle)'
tag.o(.text+0x15f): In function `Tag::createTag(QString const&, bool)':
: undefined reference to `TagLib::File::isOpen() const'
tag.o(.text+0x186): In function `Tag::createTag(QString const&, bool)':
: undefined reference to `TagLib::FLAC::File::~File [in-charge]()'
tag.o(.text+0x194): In function `Tag::createTag(QString const&, bool)':
: undefined reference to `TagLib::FLAC::File::~File [in-charge]()'
tag.o(.text+0x5e0): In function `Tag::save()':
: undefined reference to `TagLib::ID3v2::FrameFactory::instance()'
tag.o(.text+0x5e8): In function `Tag::save()':
: undefined reference to `TagLib::ID3v2::FrameFactory::setDefaultTextEncoding(TagLib::String::Type)'
tag.o(.text+0x64f): In function `Tag::save()':
: undefined reference to `TagLib::MPEG::File::File[in-charge](char const*, bool, TagLib::AudioProperties::ReadStyle)'
tag.o(.text+0x678): In function `Tag::save()':
: undefined reference to `TagLib::File::isValid() const'
tag.o(.text+0x7ae): In function `Tag::save()':
: undefined reference to `TagLib::String::String[in-charge](char const*, TagLib::String::Type)'
tag.o(.text+0x7cd): In function `Tag::save()':
: undefined reference to `TagLib::String::~String [in-charge]()'
tag.o(.text+0x7f4): In function `Tag::save()':
: undefined reference to `TagLib::String::String[in-charge](char const*, TagLib::String::Type)'
tag.o(.text+0x813): In function `Tag::save()':
: undefined reference to `TagLib::String::~String [in-charge]()'
tag.o(.text+0x83a): In function `Tag::save()':
: undefined reference to `TagLib::String::String[in-charge](char const*, TagLib::String::Type)'
tag.o(.text+0x859): In function `Tag::save()':
: undefined reference to `TagLib::String::~String [in-charge]()'
tag.o(.text+0x880): In function `Tag::save()':
: undefined reference to `TagLib::String::String[in-charge](char const*, TagLib::String::Type)'
tag.o(.text+0x89f): In function `Tag::save()':
: undefined reference to `TagLib::String::~String [in-charge]()'
tag.o(.text+0x8c6): In function `Tag::save()':
: undefined reference to `TagLib::String::String[in-charge](char const*, TagLib::String::Type)'
tag.o(.text+0x8e5): In function `Tag::save()':
: undefined reference to `TagLib::String::~String [in-charge]()'
tag.o(.text+0x973): In function `Tag::save()':
: undefined reference to `TagLib::Vorbis::File::File[in-charge](char const*, bool, TagLib::AudioProperties::ReadStyle)'
tag.o(.text+0x9b7): In function `Tag::save()':
: undefined reference to `TagLib::FLAC::File::File[in-charge](char const*, bool, TagLib::AudioProperties::ReadStyle)'
tag.o(.text+0x1189): In function `Tag::Tag[not-in-charge](QString const&, TagLib::File*)':
: undefined reference to `TagLib::String::toCString(bool) const'
tag.o(.text+0x1201): In function `Tag::Tag[not-in-charge](QString const&, TagLib::File*)':
: undefined reference to `TagLib::String::~String [in-charge]()'
tag.o(.text+0x1223): In function `Tag::Tag[not-in-charge](QString const&, TagLib::File*)':
: undefined reference to `TagLib::String::toCString(bool) const'
tag.o(.text+0x1299): In function `Tag::Tag[not-in-charge](QString const&, TagLib::File*)':
: undefined reference to `TagLib::String::~String [in-charge]()'
tag.o(.text+0x12bb): In function `Tag::Tag[not-in-charge](QString const&, TagLib::File*)':
: undefined reference to `TagLib::String::toCString(bool) const'
tag.o(.text+0x1331): In function `Tag::Tag[not-in-charge](QString const&, TagLib::File*)':
: undefined reference to `TagLib::String::~String [in-charge]()'
tag.o(.text+0x1353): In function `Tag::Tag[not-in-charge](QString const&, TagLib::File*)':
: undefined reference to `TagLib::String::toCString(bool) const'
tag.o(.text+0x13c9): In function `Tag::Tag[not-in-charge](QString const&, TagLib::File*)':
: undefined reference to `TagLib::String::~String [in-charge]()'
tag.o(.text+0x13eb): In function `Tag::Tag[not-in-charge](QString const&, TagLib::File*)':
: undefined reference to `TagLib::String::toCString(bool) const'
tag.o(.text+0x1461): In function `Tag::Tag[not-in-charge](QString const&, TagLib::File*)':
: undefined reference to `TagLib::String::~String [in-charge]()'
tag.o(.text+0x1779): In function `Tag::Tag[in-charge](QString const&, TagLib::File*)':
: undefined reference to `TagLib::String::toCString(bool) const'
tag.o(.text+0x17f1): In function `Tag::Tag[in-charge](QString const&, TagLib::File*)':
: undefined reference to `TagLib::String::~String [in-charge]()'
tag.o(.text+0x1813): In function `Tag::Tag[in-charge](QString const&, TagLib::File*)':
: undefined reference to `TagLib::String::toCString(bool) const'
tag.o(.text+0x1889): In function `Tag::Tag[in-charge](QString const&, TagLib::File*)':
: undefined reference to `TagLib::String::~String [in-charge]()'
tag.o(.text+0x18ab): In function `Tag::Tag[in-charge](QString const&, TagLib::File*)':
: undefined reference to `TagLib::String::toCString(bool) const'
tag.o(.text+0x1921): In function `Tag::Tag[in-charge](QString const&, TagLib::File*)':
: undefined reference to `TagLib::String::~String [in-charge]()'
tag.o(.text+0x1943): In function `Tag::Tag[in-charge](QString const&, TagLib::File*)':
: undefined reference to `TagLib::String::toCString(bool) const'
tag.o(.text+0x19b9): In function `Tag::Tag[in-charge](QString const&, TagLib::File*)':
: undefined reference to `TagLib::String::~String [in-charge]()'
tag.o(.text+0x19db): In function `Tag::Tag[in-charge](QString const&, TagLib::File*)':
: undefined reference to `TagLib::String::toCString(bool) const'
tag.o(.text+0x1a51): In function `Tag::Tag[in-charge](QString const&, TagLib::File*)':
: undefined reference to `TagLib::String::~String [in-charge]()'
musicbrainzquery.o(.text+0x1d): In function `MusicBrainzQuery::MusicBrainzQuery[not-in-charge](MusicBrainzQuery::QueryType, QStringList const&, QObject*, char const*)':
: undefined reference to `MusicBrainz::MusicBrainz[not-in-charge]()'
musicbrainzquery.o(.text+0x85): In function `MusicBrainzQuery::MusicBrainzQuery[in-charge](MusicBrainzQuery::QueryType, QStringList const&, QObject*, char const*)':
: undefined reference to `MusicBrainz::MusicBrainz[not-in-charge]()'
musicbrainzquery.o(.text+0x3d7): In function `MusicBrainzQuery::slotQuery()':
: undefined reference to `MusicBrainz::SetDepth(int)'
musicbrainzquery.o(.text+0x4e7): In function `MusicBrainzQuery::slotQuery()':
: undefined reference to `MusicBrainz::Query(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*)'
musicbrainzquery.o(.text+0x504): In function `MusicBrainzQuery::slotQuery()':
: undefined reference to `MusicBrainz::DataInt(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
musicbrainzquery.o(.text+0x6b2): In function `MusicBrainzQuery::slotQuery()':
: undefined reference to `MusicBrainz::Select(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
musicbrainzquery.o(.text+0x9b3): In function `MusicBrainzQuery::slotQuery()':
: undefined reference to `MusicBrainz::GetQueryError(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)'
musicbrainzquery.o(.text+0xbe8): In function `MusicBrainzQuery::dataExtract(QString const&, int)':
: undefined reference to `MusicBrainz::Data(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
musicbrainzquery.o(.text+0x104e): In function `MusicBrainzQuery::extractAlbum()':
: undefined reference to `MusicBrainz::Data(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
musicbrainzquery.o(.text+0x105c): In function `MusicBrainzQuery::extractAlbum()':
: undefined reference to `MusicBrainz::GetIDFromURL(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)'
musicbrainzquery.o(.text+0x1135): In function `MusicBrainzQuery::extractAlbum()':
: undefined reference to `MusicBrainz::DataInt(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
musicbrainzquery.o(.text+0x11f5): In function `MusicBrainzQuery::extractAlbum()':
: undefined reference to `MusicBrainz::Data(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
musicbrainzquery.o(.text+0x1203): In function `MusicBrainzQuery::extractAlbum()':
: undefined reference to `MusicBrainz::GetIDFromURL(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)'
musicbrainzquery.o(.text+0x18b7): In function `MusicBrainzQuery::extractTrackFromAlbum(int)':
: undefined reference to `MusicBrainz::Data(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
musicbrainzquery.o(.text+0x18c5): In function `MusicBrainzQuery::extractTrackFromAlbum(int)':
: undefined reference to `MusicBrainz::GetIDFromURL(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)'
musicbrainzquery.o(.text+0x197e): In function `MusicBrainzQuery::extractTrackFromAlbum(int)':
: undefined reference to `MusicBrainz::Data(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
musicbrainzquery.o(.text+0x198c): In function `MusicBrainzQuery::extractTrackFromAlbum(int)':
: undefined reference to `MusicBrainz::GetIDFromURL(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)'
musicbrainzquery.o(.text+0x1bc1): In function `MusicBrainzQuery::extractTrack(int)':
: undefined reference to `MusicBrainz::Data(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
musicbrainzquery.o(.text+0x1d6b): In function `MusicBrainzQuery::extractTrack(int)':
: undefined reference to `MusicBrainz::GetIDFromURL(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)'
musicbrainzquery.o(.text+0x1e0a): In function `MusicBrainzQuery::extractTrack(int)':
: undefined reference to `MusicBrainz::Select(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
musicbrainzquery.o(.text+0x1ec6): In function `MusicBrainzQuery::extractTrack(int)':
: undefined reference to `MusicBrainz::GetOrdinalFromList(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
musicbrainzquery.o(.text+0x1f10): In function `MusicBrainzQuery::extractTrack(int)':
: undefined reference to `MusicBrainz::Data(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
musicbrainzquery.o(.text+0x1f1e): In function `MusicBrainzQuery::extractTrack(int)':
: undefined reference to `MusicBrainz::GetIDFromURL(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)'
musicbrainzquery.o(.text+0x1fd8): In function `MusicBrainzQuery::extractTrack(int)':
: undefined reference to `MusicBrainz::Select(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
musicbrainzquery.o(.gnu.linkonce.t._ZN16MusicBrainzQueryD1Ev+0x4c): In function `MusicBrainzQuery::~MusicBrainzQuery [in-charge]()':
: undefined reference to `MusicBrainz::~MusicBrainz [not-in-charge]()'
musicbrainzquery.o(.gnu.linkonce.t._ZN16MusicBrainzQueryD0Ev+0x4c): In function `MusicBrainzQuery::~MusicBrainzQuery [in-charge deleting]()':
: undefined reference to `MusicBrainz::~MusicBrainz [not-in-charge]()'
musicbrainzquery.o(.gnu.linkonce.r._ZTI16MusicBrainzQuery+0x18): undefined reference to `typeinfo for MusicBrainz'
collect2: ld returned 1 exit status
make[3]: *** [juk] Error 1
make[3]: Leaving directory `/usr/src/kde/kdemultimedia-3.2.1/juk'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr/src/kde/kdemultimedia-3.2.1/juk'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/kde/kdemultimedia-3.2.1'
make: *** [all] Error 2

configure works fine without any missing package.
Comment 1 Scott Wheeler 2004-04-18 02:03:24 UTC
Well, this is probably something broken in the toolchain (gcc, ld, or such).  It's apparently finding the appropriate libraries and their headers but for some reason isn't linking them in.
Comment 2 Scott Wheeler 2004-05-05 15:41:49 UTC
This is a problem with the Debian packages.  I'm not sure what they contain, but a valid shared library isn't among them.  ;-)  (I worked through this issue with another developer trying to use TagLib on Debain.)

You'll probably notice that "nm -C /usr/lib/libtag.so" doesn't contain anything.  For him building TagLib by hand fixed things.

You should report this to the Debian package maintainer.